我是 node.js
、mongoDB
和 jade
的新手。
要重定向到 userlist
页面,我在 /routes/index.js
中有以下路线
router.get('/userlist', function(req, res) {
var db = req.db;
var collection = db.get('usercollection');
collection.find({},{},function(e,docs){
res.render('userlist', {
"userlist" : docs
});
});
});
此路由将我重定向到 userlist
页面。我在那里显示所有用户的列表。在这里,我在每条记录上都有一个链接以查看详细信息:
以下是我的userlist.jade
extends layout
block content
h1.
User List
ul
each user, i in userlist
li
a(href="/viewuser/id/#{user._id}")=user.username
这个:
a(href="/viewuser/id/#{user._id}")=user.username
给我:
<a href="/viewuser/id/56aca898d9b0de79214ae381">Dhara</a>
现在我不知道点击链接时应该通过什么路径查看详细信息,以及如何获取用于查看屏幕的选定记录数据。
最佳答案
我使用清晰的分布式堆栈 MEAN.js,带有 yeoman constructor这将帮助您构建安全且良好实践的编程应用程序。
这是我获取具体用户数据的方式。它比您的代码传播得更多,但很清楚。
希望对您有所帮助!
routes.js
app.use('/api/users', require('./api/user'));
api/user/index.js
var controller = require('./user.controller');
router.get('users/:id', controller.show);
user.controller.js:
// Get a single user
exports.show = function(req, res) {
User.findById(req.params.id, function (err, user) {
if(err) { return handleError(res, err); }
if(!user) { return res.send(404); }
return res.json(user);
});
};
然后我将调用一个具有类似 users/xxxxxx
的 url 的用户,其中 xxxx 是用户 ID。然后,如果你想像 /viewuser/id/xxxxxx
那样做,你需要像这样更改路由:
api/user/index.js
var controller = require('./user.controller');
router.get('viewuser/id/:id', controller.show);
user.controller.js:
// Get a single user
exports.show = function(req, res) {
User.findById(req.params.id, function (err, user) {
if(err) { return handleError(res, err); }
if(!user) { return res.send(404); }
return res.json(user);
});
};
关于javascript - 如何使用 mongoDB 和 node.js 重定向到查看页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35101842/