0

我正在使用 Node.js、Express.js 和 MongoDb 创建一个 REST api。

到目前为止,一切都很好。让事情顺利进行相当容易,而且我有一个网站正在运行。但与往常一样,当你处理小细节时,它就会变得困难。

我对这个堆栈相当陌生,但我发现它相对容易使用。只是为了让你了解我的技能。

我要问的是:

假设我有一个从此 URL 访问的用户资源:

http://localhost:3000/api/users/1234 

它返回:

{
   "_id": 1234,
   "name": "Jay Pete",
   "self": "/users/1234"
}

我希望它返回

{
   "_id": 1234,
   "name": "Jay Pete",
   "self": "http://localhost:3000/api/users/1234"
}

具有完整的完全限定的 url 而不仅仅是相对的。

我不想将完整的 URL 保存在数据库中。我宁愿在运行时预先添加服务器信息。不仅仅是为了自我参考,而是为了我的 API 中的每一个参考。

但是我对 Express 和 Javascript 的了解还不足以让我找出最好的方法来做到这一点。我应该让猫鼬去,还是应该编写某种映射器,我从 Express 中的路由调用。

其他人如何做到这一点?

谢谢,杰

4

1 回答 1

1

您可以使用虚拟字段在猫鼬中完成此操作:

var Schema = new mongoose.Schema(...); //schemata
Schema.virtual('self_url').get(function() {
    return 'http://localhost:3000/api' + this.self;
});
于 2014-02-06T22:48:34.643 回答