lowdb .find 不起作用?



我有一个非常简单的本地 api,我用它来测试我正在构建的移动应用程序,但我无法让 lowdb 在数据库中正确找到记录。我尝试使用 .find(( 和 .filter((,但两者都返回未定义。这是一个非常简单的设置。我有一个路由,它接收一个 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或任何hting,因为它不起作用我没有写那部分,我正在使用控制台查看数据。控制台输出...

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

寻找mobile_code: 775902

定义

该条目显然在数据库中,实际上它是目前唯一的条目,但是当我尝试根据mobile_code获取条目时,它始终未定义。我尝试同时使用 .find(( 和 .filter((,但它们都在控制台中记录未定义。有没有办法根据mobile_code获得该条目?文档显示 .find(( 应该给我这个条目。任何帮助将不胜感激。

找到了原因。发出 post 请求时,mobile_pin 将转换为字符串,因此没有带有mobile_code"775902"的条目。你必须使用 parseInt(req.body.mobile_pin(;否则数据库将无法找到该条目。

最新更新