【发布时间】:2016-06-24 17:24:48
【问题描述】:
我有一个非常基本的快速服务器,它只是通过 mongoose 为 webapps 提供模型数据。所以现在由于在我的框架(ember)中 JSON-API 是请求模型数据的新默认适配器,我想知道如何以尊重 JSON API 规范的方式为我的路由实现响应。
我目前的快递路线是这样的。
router.get('/:id', function(req, res, next) {
postModel.find({ //Mongoose functions
_id: req.params.id
}, function(err, doc) {
res.json({ //returning the doc
data: doc //within 'doc', the 'type'-key must be added
});
});
});
我必须在每个响应对象中包含“类型”的键,以便响应对象看起来像这样:
{
data:{
type:"post",
id:"123",
title:"test"
}
}
【问题讨论】:
-
我不知道快递。您的 get 调用应该是:“/[type]/[id]”。您的帖子模型示例:使用 /posts/123 获取并且返回的对象应如下所示: data:{ type:"posts", id:"123", attributes: {title:"test"} } 就像在 json -api 规范:jsonapi.org/format/#document-resource-objects
-
是的,我知道这些规则。由于 express 模块/中间件的概念,只要我们在主文件中正确包含这个文件,只使用
('/:id',部分是正确的。无论如何,我的(主要)问题是我不知道如何将 type:"posts" 键值对添加到doc-var 中,这是猫鼬文档请求的结果。我想知道是否有一种舒适的方法可以在 mongodb 中使用已经对应 jsonapi(带有“类型”字段等)的 mongoose 查找记录/文档 -
哦,抱歉,没理解正确(如前所述,我不知道 express/mongoose)。但也许这个 github 问题有帮助:github.com/Automattic/mongoose/issues/1867
-
对这个主题有什么新想法吗?有这个路由器助手:github.com/crimsonronin/express-json-api 但我不确定它是否正在积极开发。也许还有其他得到充分支持的解决方案?