如何将浏览器中的url作为节点js中后端的参数?

时间:2017-01-05 15:26:26

标签: node.js express mongoose

我正在使用MEAN Stack。我将用户ID作为网址发送。

<div>
 <% users.forEach( function( user ){ %>
   <li><a href=""><%= user.username %></a></li>
   <li><a href="updateEmployee/<%= user._id %>"><%= user.id %></a></li>
 <% }); %>
</div>

我希望将此用户ID作为路由中的参数,并查询具有该ID的用户的详细信息。

  

我试过这个如下

router.get('/updateEmployee/:ID', function (req, res) {

User.findOne({_id: req.ID}, function ( err, users, count ){

  res.render( 'viewUser', {
    users : users
  });
}); 

});

  

我如何在ejs中显示

 <li><a href="/AdminDatabase/viewUser"><%= users.username %></a></li>
 <li><a href="/AdminDatabase/viewUser"><%= users.id %></a></li>

我提到https://scotch.io/tutorials/use-expressjs-to-get-url-and-post-parameters来编写此代码。

但我收到一条错误消息无法读取属性'username'为null

我是否以正确的方式这样做。如果是,我的错误是什么?或者我怎么能用其他方法做到这一点?

1 个答案:

答案 0 :(得分:2)

而不是使用 _id:req.ID ,您应该在Mongoose findOne函数中使用 _id:req.params.ID