【问题标题】:MongoDb find using dynamic query objectMongoDb 使用动态查询对象查找
【发布时间】:2020-01-24 12:22:06
【问题描述】:

我是 node js 和 Mongo Db 的新手。 我正在尝试编辑用户详细信息。因此,我为每个用户显示了带有编辑链接的用户列表。当我单击编辑链接时,我将用户名传递给了路由器,并且成功地到达了那里。但未能根据传递的名称找到用户的详细信息。 下面是我的代码

 router.get('/edit/:name', function(req, res){
  var username= req.params['name'];
  console.log(username);
  db.collection('users').find({ name:username }).toArray(function (err, result) {
        console.log(result);
        if (err)
            throw err;
            res.render("edit-form", {details: result})
    });
});

在这里,当我执行 console.log(username);我得到了用户名,但是 console.log(result);是空的。如果我尝试直接在 find 方法中提供用户名,就像下面一样,我会在我的页面中得到结果。

db.collection('users').find({ name:"test"}).toArray(function (err, result) {
        console.log(result);
        if (err)
            throw err;
            res.render("edit-form", {details: result})
    });

如何动态获取用户名,以便从数据库中获取对应的用户结果。

【问题讨论】:

  • console.log(用户名);你在日志中得到你的用户名了吗??
  • 是的,我得到了
  • 你得到了什么 var username= req.params['name'];如果你调用edit/abc。
  • var username= req.params['name'];里面有“测试”。我正在尝试编辑测试的详细信息,这是我的用户名。

标签: node.js mongodb find


【解决方案1】:

可能是req.params['name']的deprecation的问题

你可以直接获取你的参数

var username= req.params.name ;

您还需要检查您的用户名没有传递任何多余的空格。

 username.trim() 

然后将其传递给您的 find

【讨论】:

猜你喜欢
  • 2016-07-04
  • 2018-09-05
  • 2016-10-22
  • 2023-03-12
  • 1970-01-01
  • 2017-02-20
  • 1970-01-01
  • 1970-01-01
  • 2016-06-16
相关资源
最近更新 更多