初始化
初始化一个node项目,并添加express依赖,用yarn举例
mkdir test-express
cd test-express
yarn init -y
yarn add express
入口文件 app.js
简单来说:先编写请求接口,再监听端口号即可
const express = require('express');
const app = express();
const port = 3000;
// 中间件:请求前、响应前做的操作。
app.use(express.json()); // 用于解析响应体中的json
// 所有方法的回调函数中,req表示请求,res表示响应
app.get('/', (req, res) => {
res.send('Hello world')
});
app.post('/', (req, res) => {
console.log('收到请求体', req.body);
// res.status(201)响应的状态码
res.status(201).send();
});
// put一般用于通过id修改数据库内容
app.put('/:id', (req, res) => {
console.log('收到id为', req.params.id);
console.log('收到请求体', req.body);
res.send(); // 默认状态码为200
});
app.delete('/:id', (req, res) => {
console.log('要删除的id为', req.params.id);
res.status(204).send();
});
app.listen(port, () => {
console.log('express已启动,端口号:' + port);
});
启动:
node app.js
整合
因为在一个app.js文件中写一堆文件会很大,所以可以使用路由routes将各个模块进行整合
app.js
const express = require('express');
const app = express();
const routes = require('./routes')
const port = 3000;
// 中间件:请求前、响应前做的操作。
app.use(express.json()); // 用于解析响应体中的json
// 引入路由
app.use(routes)
app.listen(port, () => {
console.log('express已启动,端口号:' + port);
});
routes/index.js
const express = require('express');
const route = express.Router();
const product = require('./product');
route.use('/product', product);
module.exports = route;
routes/product.js
const express = require('express');
const route = express.Router()
// 所有方法的回调函数中,req表示请求,res表示响应
route.get('/', (req, res) => {
res.send({ id: 1, title: '测试数据' })
});
route.post('/', (req, res) => {
console.log('收到请求体', req.body);
// res.status(201)响应的状态码
res.status(201).send({ id: 2, ...req.body });
});
// put一般用于通过id修改数据库内容
route.put('/:id', (req, res) => {
console.log('收到id为', req.params.id);
console.log('收到请求体', req.body);
res.send({ id: req.params.id, ...req.body }); // 默认状态码为200
});
route.delete('/:id', (req, res) => {
console.log('要删除的id为', req.params.id);
res.status(204).send();
});
module.exports = route;