毋庸置疑,首先是安装express:
--save express
创建一个程序入口文件app.js:
let express = require("express");
let app = express();
app.set('port', process.env.PORT || 3000); // 设置端口
app.get('/', function (req,) {
res.type('text/plain');
res.send("服务器启动")
});
//404状态
app.use(function (req,) {
res.type("text/plain");
res.status(404);
res.send('404-not found')
});
//500
app.use(function (err, req, res,) {
console.log('err', err);
res.type('text/plain');
res.status(500);
res.send('500-Server Error');
});
// 监听端口号
app.listen(app.get('port'), function () {
console.log("Express start:", app.get("port"))
})
在浏览器中访问http://localhost:3000/,效果如图:
app.get是我们添加的一个路由方法,这个路由方法函数有两个参数:路径和回调函数,路径就是我们的api接口定义,回调函数是处理这个接口调用后的一些逻辑,比如访问数据库以及数据处理等等。
关于的定制的404和500页面,使用的是app.use,app.use是express的一个中间件方法,app.use方法在这里是用来处理没有匹配路径的处理。
在express中,配置路由的时候,要注意路由顺序
设置请求报头,比如:
app.get('/header', function (req,) {
res.set('Content-Type', 'text/plain')
const arr = { name: "908", num: 7765 };
res.send(arr)
})
设置请求体,很多时候接口请求是有一个请求体,比如POST请求中常见的媒体类型:application/x-www-form-urlencoded
,是键值对的集合,另一个支持文件上传的媒体类型:multipart/form-data
,还有一个Ajax请求是application/json
上面代码中的回调函数有两个参数:请求对象和响应对象
请求对象req:
- req.params,一个数组,包含了命名过的路由参数
- req.query,一个对象,包含以键值对存放的查询字符串参数,一般是GET请求参数
- req.body,一个对象,包含POST请求参数
- req.route,关于当前匹配路由的信息,主要是用于路由调试
- req.cookies/req.singnedCookies,从客户端传递的cookie
- req.headers,从客户端接收到的请求报头
- req.accepts([types]),一个方法,用来确定客户端是否接受一个或者一组指定类型
- req.ip,客户端IP
- req.path,请求路径
还有很多的属性,平时常用的应该是req.body和req.query了。
响应对象res:
- res.status,设置http状态码,express默认是200
- res.set(name, value),设置响应头,一般不用手动设置
- res.cookie(name, value, [options]),res.clearCookie(name, [options]),设置和清除客户端的cookie,需要中间件支持
- res.redirect([status], url),重定向浏览器,默认重定向代码是302。
- res.send(body), res.send(status, body),向客户端发送响应以及可选的状态码。
- res.json(json), res.json(status, json),向客户端发送JSON和可选的状态码
- res.type(type),设置content-type的信息
- res.format(object),根据接收请求报头发送不同的内容。
这里仅仅列出这几个简单的属性,其他属性可以查阅官方API。