gpt4 book ai didi

javascript - Nodejs + mongodb 中 REST API 的自定义 URL

转载 作者:太空宇宙 更新时间:2023-11-03 22:34:14 24 4
gpt4 key购买 nike

所以我在nodejs api中有以下 Mongoose 模式:

var profileschema = new mongoose.Schema({
name: { type: String },
surname: { type: String },
id: { type: String }
});
<小时/>

以及以下路线:

 var profile = express.Router();

profile.route('/profile')
.get(profilecrtl.findAllProfile)
.post(profilecrtl.addProfile);
<小时/>

我可以制作其他路线,例如 /profile/:id 并且它们工作得很好。

但我想根据用户要求的参数和想要的相同方法生成自定义 URL,而无需对每种情况进行编码。例如:

  • /profile?id=1234 应该为我提供有关 id=1234 个人资料的完整信息
<小时/>
{ 
id: '1234',
name: 'john'
surname: 'wicked'
}
<小时/>
  • /profile?id=1234&name=john 应该为我提供与以前相同的完整个人资料
<小时/>
{ 
id: '1234',
name: 'john'
surname: 'wicked'
}
<小时/>
  • /profile?id=1234&fields=name 应该只给我 id=1234 个人资料的名称
<小时/>
{ 
name: 'john'
}
<小时/>

是否有任何可靠的方法可以在相同情况中执行此操作,以便在将来发生任何变化时可以轻松扩展?

最佳答案

由于您使用的是 Express,因此您应该使用 req.query 来获取包含请求参数的对象。

profile.get('/profile', function (req, res) {
var query = req.query;
//Depending on what the query contains, find stuff in your DB with mongoose!
});

req.query 是一个 JSON 对象,包含请求的所有查询参数,因此像

这样的请求

/profile?id=1234&fields=name

会生成一个类似于

的 JSON 对象
{ 
id: '1234',
fields: 'name'
}

您可以从中创建数据库查询。

关于javascript - Nodejs + mongodb 中 REST API 的自定义 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32008150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com