lowdb .find not working?

时间:2018-06-06 00:18:37

标签: javascript node.js database

我有一个非常简单的本地api,我用它来测试我正在构建的移动应用程序,但是我无法通过lowdb来正确地找到数据库中的记录。我尝试过使用.find()和.filter(),但两者都返回undefined。这是一个非常简单的设置。我有一个路由来获取一个post请求,从请求体获取mobile_pin,然后应该根据mobile_pin返回数据库中条目的id,但它总是未定义的。这是节点功能,它不起作用......

router.post('/connect', function(req, res, next) {
  const db = res.locals.db;
  const mobile_pin = req.body.mobile_pin;
  console.log(db.get('users').value());
  console.log("Looking for mobile_code: " + mobile_pin);
  let entry = db.get('users').find({mobile_code: mobile_pin}).value();
  console.log(entry);
});

我知道没有res.writeHead或anyhting,因为它没有工作我没有写那部分,我正在使用控制台查看数据。控制台输出......

  

[{id:" UUID",mobile_code:775902,帖子:[],日期:[],   modified_timestamp:[]}]

     

寻找mobile_code:775902

     

未定义

该条目显然在数据库中,实际上它是目前唯一的条目,但是当我尝试根据mobile_code获取条目时,它总是未定义的。我尝试过使用.find()和使用.filter(),但是它们都在控制台中记录未定义。有没有办法根据mobile_code获取该条目?文档显示.find()应该给我这个条目。任何帮助都会受到大力赞赏。

1 个答案:

答案 0 :(得分:1)

找到原因。在发布帖子请求时,mobile_pin会转换为字符串,因此没有使用mobile_code" 775902"的条目。你必须使用parseInt(req.body.mobile_pin);或者数据库将无法找到该条目。