Express框架中app.get()超过3个,数据返回空值
发布于 6 年前 作者 melovemingming 2362 次浏览 来自 问答

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) => {…}); 把后面的路由覆盖了

@peasonlee O(∩_∩)O谢谢

@h691938207 O(∩_∩)O谢谢

回到顶部