![](/img/trans.png)
[英]node.js mongodb - collection.find().toArray(callback) returns empty
[英]Node JS MongoDB collection.find.toArray returns no value
我正在建立一个网站,使人们可以书写便签并将其打印在屏幕上。 我想将粘滞便笺存储在mongoDB中,该数据库具有一个名为stickyNotes的数据库和一个名为stickyNotes的集合,该集合当前有两个文档。
我有一个名为stickyNotes的变量,它想从数据库上的stickyNotes集合中获取文档,但是当我使用mongodb库中的collection.find.toArray
以异步方式将文档输入到stickyNotes变量时,它显示为空数组值。
这是我的server.js文件:
const express = require("express");
const mongo = require("mongodb").MongoClient;
const app = express();
let stickyNotes = [];
//mongodb get all sticky notes
const mongoUrl = "mongodb://localhost:27017";
mongo.connect(mongoUrl, { useNewUrlParser: true }, async function(
err,
connection
) {
if (err) {
console.error(err);
} else {
console.log("Succesfully connected to the database");
const db = connection.db("stickyNotes");
const stickyNotesCollection = db.collection("stickyNotes");
stickyNotes = await stickyNotesCollection.find({}).toArray();
}
connection.close();
});
console.log(stickyNotes);
app.use(express.static("./src/public"));
app.get("/sticky-notes", (req, res) => {
console.log("Got a request for sticky notes");
res.json(stickyNotes);
});
const port = 3000;
app.listen(port, () => {
console.log(`App is running on port ${port}`);
});
可以尝试:
stickyNotesCollection.find({}, (err, result) => {
if (err) throw err;
stickyNotes = result;
});
或在数组中查找结果:
collection.find().toArray(function(err, result) {
console.log(result);
});
或迭代:
collection.find().each(function(err, result) {
//once result
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.