问题详情
前端项目需要一些mock数据,用nodejs写一个后端完成数据的返回、请求参数的读取、请求参数的处理。
最简易解决办法
创建一个叫service.js的文件。
const express = require('express');
const app = express();
//设置允许跨域访问该服务.
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
//Access-Control-Allow-Headers ,可根据浏览器的F12查看,把对应的粘贴在这里就行
res.header('Access-Control-Allow-Headers', 'Content-Type, token');
res.header('Access-Control-Allow-Methods', '*');
res.header('Content-Type', 'application/json;charset=utf-8');
next();
});
app.post('/service', function (req, res) {
res.json(
{
title:"你好"
});
});
const server = app.listen(8084, function () {
console.log('Express app server listening on port %d', server.address().port);
});
然后,terminal输入,node service.js
运行即可。(相关依赖记得装一下)
路径是localhost:8084/service
复杂一些的处理方法
其实没有什么区别,只是把请求给独立出来。创建main.js文件
const express = require('express');
const app = express();
app.listen(8021, () => {
// 打印一下接口用例地址
console.log('http://localhost:8021')
})
const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: false}))
//设置跨域访问
app.all('*', function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "X-Requested-With");
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By", ' 3.2.1')
res.header("Content-Type", "application/json;charset=utf-8");
next();
});
// 关于test的接口,需要的内容
// 1.创建文件'./api/test/test.js',
// 2.let test='',
// 3.const test,
// 4.use test
let test_url = '/test'
const test_file = require('./api/test/test')
app.use(test_url,test_file)
然后运行即可,test.js见下文。
请求参数处理
const express = require('express');
const router = express.Router();
router.all('/testdetail', (req, res) => {
// console.log(req.query)
let num = req.query.num
let name_query = req.query.name
let name_body = req.body.name
let res_body = {
"code": 200,
"msg": "成功",
"data": {
}
}
if (num=='0'){
res_body.data={
"query_value_name" : name_query
}
}else{
res_body.data={
"body_value_name" : name_body
}
}
res.json(
res_body
);
});
module.exports = router;
启动服务,node main.js
即可。
路径是localhost:8021/test/testdetail
可以使用路由携带query params参数,也可以用body携带各种参数。
更多req的信息,可以用console.log(req)
来查看。
至于更多的自定义的方法,只要会写js就可以自己再做各种添加了。
其他
本文只涉及了最简单的一些服务启动,路由监听,参数处理,数据返回的功能。
更多的功能,比如数据库连接或者权限认证什么的,这个最简单的mock数据服务器都暂时没有实现(数据库可以查看文末参考资料,实现非常简单)。后续如果需要做了,本文或其他文章会再做补充。
参考资料
https://blog.youkuaiyun.com/qq_37860634/article/details/88842779