我想根据id从json文件中获取一个用户,下面的内容仅在id有序时才有效
router.get('/:id', function (req, res) {
// First read existing users.
fs.readFile( __dirname + "/" + "users.json", 'utf8', function (err, data) {
people = JSON.parse( data );
var user = people.users[req.params.id]
if (err) {
res.status = 500;
res.send(err).end();
return;
}
console.log( user );
res.end( JSON.stringify(user));
});
})
json:
{"users[{"firstname":"stoffel","lastname":"clement","id":9},{"firstname":"stoffel","lastname":"clement","id":1},{"firstname":"liam","lastname":"murphy","id":"2"},{"firstname":"stoffel","lastname":"murphy","id":"3"}]}
答案 0 :(得分:0)
您的代码正在通过 index 访问users
数组。您想通过id
进行搜索。 (当您的users
数组按照id
排序时,数组中的位置将与id
匹配(假设您使用的是零索引),这就是它工作的原因。)< / p>
如果您使用的是像lodash这样的库,您可以执行类似......
的操作 var user = _.find(users, ['id', req.params.id])
答案 1 :(得分:-1)
你的JSON看起来很时髦。我认为你需要一个结束引号和冒号后用户部分,即
{"users": [{"firstname":"stoffel","lastname":"clement","id":9},{"firstname":"stoffel","lastname":"clement","id":1},{"firstname":"liam","lastname":"murphy","id":"2"},{"firstname":"stoffel","lastname":"murphy","id":"3"}]};