JSON服务器未按ID返回单个子元素
我试图让(V0.12.1)在不需要中间件或将其用作组件的情况下工作——如果我要花时间手动编写所有端点的代码,我已经有了一些可以正常工作的东西。我被简单的路由配置所吸引,我相信我应该能够使用它,而不需要任何东西,除了JSON服务器未按ID返回单个子元素,json,rest,json-server,Json,Rest,Json Server,我试图让(V0.12.1)在不需要中间件或将其用作组件的情况下工作——如果我要花时间手动编写所有端点的代码,我已经有了一些可以正常工作的东西。我被简单的路由配置所吸引,我相信我应该能够使用它,而不需要任何东西,除了routes.json和db.json(让我删除了很多样板文件express的东西) My db.json: "users": [ { "userId": 1, "favoriteColor": "red" }, { "u
routes.json
和db.json
(让我删除了很多样板文件express的东西)
My db.json:
"users": [
{
"userId": 1,
"favoriteColor": "red"
},
{
"userId": 2,
"favoriteColor": "blue"
},
{
"userId": 3,
"favoriteColor": "green"
}
]
My routes.json:
{
"/api/users": "/users",
"/api/users/:userId": "/users/:userId"
}
我希望能够拨打GET电话:http://localhost:3000/api/users/2
并获取
{
"userId": 2,
"favoriteColor": "blue"
}
作为回报。然而,我总是得到{}
尝试使用SO的一些建议,或者更改数据结构(我无法控制),或者使用过滤器(返回数组,而不是对象),对我来说都是行不通的
有人知道为什么这条看似简单的路线不起作用吗?我相信我是在遵循规则。我用json服务器启动服务器——观察./api/db.json--routes./api/routes.json
,然后点击http://localhost:3000/api/users
返回我期望的结果,因此我知道routes.json
文件和db.json
文件都已成功拾取
谢谢大家! 我必须用以下方法启动服务器:
json服务器——监视db.json——路由routes.json
db.json
{
"users": [
{
"id": 1,
"first_name": "Sebastian",
"last_name": "Eschweiler",
"email": "sebastian@codingthesmartway.com"
},
{
"id": 2,
"first_name": "Steve",
"last_name": "Palmer",
"email": "steve@codingthesmartway.com"
},
{
"id": 3,
"first_name": "Ann",
"last_name": "Smith",
"email": "ann@codingthesmartway.com"
}
]
}
routes.json
{
"/api/users": "/users",
"/api/users/:id": "/users/:id"
}
我正在阅读json服务器的文档,看起来您可以在不定义第二条路由的情况下获取对象。你试过了吗?@funcoding我现在有了,谢谢!不幸的是,如果我省略了第二个端点并简单地调用,我会得到一个404。将“userId”改为“id”(以防有一个假定的约定)似乎也没有什么帮助。根据前面的db.json文件,您得到了一些默认路由。你是用
--routes
启动服务器的吗?这对你有用吗?@funcoding是的,我是用json服务器--watch./api/db.json--routes./api/routes.json启动的。我不得不挠头想一想,当我们有相同的路由时,为什么你的有效而我的无效。。。但事实证明,具有id
属性是惯例所要求的(与userId
相反)。我以为我已经测试过了,但显然我把测试搞砸了。谢谢你强迫我再看一眼。@tengen很高兴能帮上忙!