Express框架中app.get()超过3个,数据返回空值
Express框架中app.get()超过3个,数据返回空值,就需要重新定义框架的类,为什么?
/*server.js*/
var express = require('express'); // 引入express框架
var app = express();
var fs = require('fs'); // 引入文件模块
// 创建获取用户列表路由
app.get('/listUsers', (req, res) => {
fs.readFile( __dirname + "/" + "users.json", 'utf8', (err, data) => {
console.log( data );
res.end( data );
});
})
// 创建添加用户路由请求
app.get('/addUser', (req, res) => {
// 读取已存在的数据
fs.readFile( __dirname + "/" + "users.json", "utf8", (err, data) => {
if (err) {
return console.log(err);
};
// 添加用户
var user = {
"user4": {
"name":"mohit",
"password":"password4",
"profession":"teacher",
"id":4
}
}
data = JSON.parse(data); // 将传入的JSON转换为对象格式
data["user4"] = user["user4"];
console.log(data);
res.end( JSON.stringify(data) ); // 将对象转换成为JSON格式
});
});
// 添加显示用户详情路由
app.get('/:id', (req, res) => {
// 首先读取已存在的用户
fs.readFile( __dirname + '/' + "users.json", 'utf8', (err, data) => {
data = JSON.parse( data );
var user = data["user" + req.params.id] // 获取get得到的值
console.log( user );
res.end( JSON.stringify(user) );
})
})
var app = express(); // 不清楚为什么这里要重新定义?
// 删除用户
app.get('/deleteUser', (req, res) => {
// 首先获取用户信息
fs.readFile( __dirname + "/" + "users.json", 'utf8', (err, data) => {
data = JSON.parse( data );
delete data["user" + 2];
console.log( data );
res.end( JSON.stringify(data));
});
})
// 启动server
var server = app.listen(1937, () => {
console.log(server.address());
})
代码如上
5 回复
O(∩_∩)O谢谢
那是你 app.get(’/:id’, (req, res) => {…}); 把后面的路由覆盖了
路由匹配的不对 基础教程看看 https://cnodejs.org/topic/5b3748c457137f22415c5143
@peasonlee O(∩_∩)O谢谢
@h691938207 O(∩_∩)O谢谢