У меня есть чрезвычайно простой локальный api, который я использую для тестирования мобильного приложения, которое я создаю, но я не могу заставить lowdb правильно найти запись в базе данных. Я пробовал использовать .find () и .filter (), но оба возвращают undefined. Это очень простая установка. У меня есть маршрут, который принимает почтовый запрос, получает mobile_pin из тела запроса, затем должен возвращать идентификатор записи в базе данных на основе mobile_pin, но он всегда не определен. Вот функция узла, которая не работает ...
router.post('/connect', function(req, res, next) {
const db = res.locals.db;
const mobile_pin = req.body.mobile_pin;
console.info(db.get('users').value());
console.info("Looking for mobile_code: " + mobile_pin);
let entry = db.get('users').find({mobile_code: mobile_pin}).value();
console.info(entry);
});
Я знаю, что нет res.writeHead или чего-то еще, так как он не работает, я не писал эту часть, я использую консоль для просмотра данных. Консольный вывод ...
[{ id: "UUID", mobile_code: 775902, posts: [], date: [], modified_timestamp: []}]
Looking for mobile_code: 775902
undefined
Запись, очевидно, находится в базе данных, на самом деле это единственная запись там на данный момент, но она всегда не определена, когда я пытаюсь получить запись на основе mobile_code. Я пробовал использовать как .find (), так и .filter (), но оба они регистрируют undefined в консоли. Нет ли способа получить эту запись на основе mobile_code? Документация показывает, что .find () должен предоставить мне эту запись. Любая помощь будет принята с благодарностью.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Нашел причину. При отправке почтового запроса mobile_pin преобразуется в строку, поэтому записи с кодом mobile_code «775902» не было. Вы должны использовать parseInt (req.body.mobile_pin); или база данных не сможет найти запись.