[英]Mongoose findByID from URL route parameter not working with Express router
[英]Url parameter in express and mongoose
我用node / express和mongoose構建了一個基本的Web應用程序。 如何將Express參數中的:id替換為字符串
例如
貓鼬模型
var UserSchema = new Schema({
name: String,
});
var User = mongoose.model('User', UserSchema);
假設現在用戶集合中有一個用戶名"Mr robot king"
app.get('/:id', function(req, res, next) {
User.findOne({ _id: req.params.id }, function(err, user) {
res.render('home');
});
});
網址的結果
localhost:8080/5asdasd43241asdasdasd
我想要的是
localhost:8080/Mr-robot-king
從本質上講,這並不困難:
app.get('/:name', function(req, res, next) {
var name = req.params.name.replace(/-/g, ' ');
User.findOne({ name : name }, function(err, user) {
res.json(user);
});
});
一些注意事項:
&
或?
),則在構建鏈接時,應對它們進行編碼。 因此,用戶名jill&bob
將產生鏈接localhost:8080/jill%26bob
name
字段中添加索引 ,以確保查詢快速。 編輯 :要生成這些鏈接(例如從EJS模板生成),可以使用如下所示的內容:
<a href="/<%= user.name.replace(/ /g, '-') %>">go to page</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.