什么是express
express是基于Node.js平台,快速、开放、极简的web开发框架 express的作用和Nodejs内置的http模块类似,是专门用来创建web服务器的 express的本质,就是一个npm的第三方包,提供了创建web服务器的边界方法 express的中文官网:
express的基本使用
1.安装express
npm i express@4.17.1
2.使用express创建最基本的web服务器
导入express
const express=require('express');
//创建web服务器
const app=express();
//调用app.listen()启动服务器
app.listen(80,()=>{
console.log("express server is running at http://localhost:80");
})
3.如何监听客户端的get和post请求,并向客户端响应数据
const express=require("express");
const app=express();
//监听客户端的get请求,并向客户端响应数据
app.get('/user',(req,res)=>{
res.send({uname:'zs',age:18})
})
//监听客户端的Post请求,并向客户端响应数据
app.post('/user',(req,res)=>{
res.send("请求成功")
})
app.listen(80,()=>{
console.log("express server is running at http://127.0.0.1:80");
})
4.获取url中携带的查询参数
通过req.query对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:
const express=require('express');
const app=express();
app.get('/',(req,res)=>{
//req.query默认是一个空对象
//客户端使用?name=zs&age=20这种查询字符串的形式,发送到服务器的参数,可以通过req.query()对象访问到,例如:
req.query.name req.query.age
consolelog(req.query)
})
app.listen(80,()=>{
console.log("express server is running at http://localhost:80");
})
5.获取url中的动态参数 通过req.params对象,可以访问到url中通过:匹配的动态参数
const express=require('express');
const app=express();
//注意:这里的:id是一个动态的参数
app.get('/user/:id',(req,res)=>{
//req.params是动态匹配到的url参数,默认也是一个空对象
console.log(req.params);
res.send(req.params);
})
app.listen(80,(req,res)=>{
console.log('express server is running at http://127.0.0.1:80')
})
托管静态资源
1.express.static()
express提供了一个非常好用的函数,叫做express.static(),通过它,我门可以非常方便的创建一个静态资源服务器,例如:通过以下代码就可以将public目录下的图片,css文件,javascript文件对外开放访问了:
app.use(express.static('public'))
**注意:**express在指定静态目录中查找文件,并对外提供资源的访问路径。因此:存放静态文件的目录名不会出现在url中
const express=require('express');
const app=express();
//在这里调用express.static()方法,快速的对外提供静态资源
app.use(express.static('./clock'));
app.listen(80,()=>{
console.log('express server is running at http://127.0.0.1');
)
2.如何对外托管多个静态资源目录
如果要托管多个静态资源目录,请多次调用express.static()函数
app.use(express.static('public')); app.use(express.static('files'));
const express=require('express');
const app=express();
//在这里,调用express.static()方法,快速的对外提供静态资源
app.use(express.static('../files'));
app.use(express.static('../clock'));
app.listen(80,(req,res)=>{
console.log('express server is running at http://127.0.0.1:80')
})
3.挂载路径前缀
如果希望在托管的静态资源访问路径之前,挂在路径前缀,则可以使用如下方式
app.use('/public',express.static('public'))
http://localhost:3000/public/images/kiten.jpg
http://localhost:3000/public/css/index.css
http://localhost:3000/public/js/index.js