使用json-server按ID获取对象时返回404的问题排查
问题解决:json-server按ID查询404的原因及修复
问题根源
你的users.json和admins.json外层都嵌套了一层同名键(比如users.json里的users),而你在db.js中直接把导入的整个JSON对象赋值给返回对象的属性,导致json-server拿到的users数据是一个包含数组的对象,而非直接的数组。json-server要求顶层资源对应的是数组结构,才能识别其中的id字段并支持按ID查询,这就是GET /users/1234返回404的原因。
修复方法
修改db.js,从导入的JSON对象中提取出内部的数组,再赋值给返回对象的对应属性:
var users = require('./users.json'); var admins = require('./admins.json'); module.exports = function() { return { users : users.users, // 提取users.json里的用户数组 admins : admins.admins // 提取admins.json里的管理员数组 }; }
验证
修改后重新执行启动命令json-server --watch db.js:
GET /users会直接返回用户数组GET /users/1234可以正常查询到对应ID的用户对象GET /admins和GET /admins/[ID]也会正常工作
内容的提问来源于stack exchange,提问作者user4865140
相关产品推荐
相关产品推荐

