【问题标题】:Using absolute references in REST Api based on Node.js, Express and MongoDb在基于 Node.js、Express 和 MongoDb 的 REST Api 中使用绝对引用
【发布时间】:2014-03-04 03:36:12
【问题描述】:

我正在使用 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 保存在数据库中。我宁愿在运行时预先添加服务器信息。不仅仅是为了自我参考,而是为了我的 API 中的每一个参考。

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

其他人是怎么做到的?

谢谢, 周杰伦

【问题讨论】:

    标签: node.js mongodb rest express hypermedia


    【解决方案1】:

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

    var Schema = new mongoose.Schema(...); //schemata
    Schema.virtual('self_url').get(function() {
        return 'http://localhost:3000/api' + this.self;
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-10
      • 2020-09-07
      • 2011-12-08
      • 1970-01-01
      • 2021-08-27
      • 2016-05-17
      • 2014-06-19
      • 1970-01-01
      相关资源
      最近更新 更多