Express 后端 API 开发

84 阅读1分钟

初始化

初始化一个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;