Я пишу приложение для mongoose и Express, но перед использованием mongoose я использовал стандартный MongoClient из mongodb. Это вернуло мне массив, который я мог использовать, чтобы визуализировать мой взгляд на веточку. Однако после переключения массив из Mongoose не работает так, как я ожидал, в случае, если я не могу правильно выбрать значения ключа массива, как в этом примере кода.
С мангустом:
router.get('/:page', function (req, res, next) {
Page.find({'title': req.params.page.toLowerCase()}, function (err, page) {
if(!Array.length) {
next(createError(404));
return;
}
res.send(page[0].title);
});
Ответ: ничего, пусто.
По какой-то причине, если я сделаю page[0]
или просто page
, он вернет мне массив, как и должен.
Без мангуста:
const MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb://localhost/ezcm', function (err, db) {
if (err) throw err;
let dbo = db.db("ezcm");
let query = {title: req.params.page.toLowerCase()};
dbo.collection("pages").find(query).toArray(function (err, result) {
if (!Array.isArray(result) || !result.length) {
next(createError(404));
return
}
db.close();
});
});
(игнорировать лишние биты несвязанного кода)
Ответ: что я искал, например, About me
, если это было localhost:3000/about
.
Похоже, они оба массивы, но разные типы массивов? Как новичок, я не могу отличить и работать с ними. Помоги мне!
Заранее спасибо.