如何使用 mongoDB 和 node.js 重定向到查看页面

How to redirect to view page using mongoDB and node.js

我是 node.jsmongoDBjade 的新手。

要重定向到 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 页面。我在那里显示所有用户的列表。这里我每条记录上都有一个link可以查看详情:

以下是我的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>

现在我不知道点击link查看详细信息应该有什么路径,也不知道如何为查看屏幕获取选定的记录数据。

我使用清晰的分布式堆栈 MEAN.jsyeoman 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);
  });
};

然后我将呼叫具有 url 的用户,例如 users/xxxxxx,其中 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);
  });
};

也许您需要在应用服务器文件中指定视图

app.get('/userlist', function(req, res){ res.render('userlist', { title: 'Your_Title' }); });

希望对您有所帮助!