Node.js 如何在collection.find()之后获取JSON对象
我使用nodeJS从Node.js 如何在collection.find()之后获取JSON对象,node.js,mongodb,Node.js,Mongodb,我使用nodeJS从mongoatlas获取带有URL的数据 但是,在函数collection.find()之后,我不知道如何将获取的数据转换为JSON对象,该对象稍后将成为stringify() 变量record未定义,我不知道如何正确分配它 代码如下: app.get("/allbooks", (request, response) => { console.log("someone request to get all books from da
mongoatlas
获取带有URL的数据
但是,在函数collection.find()
之后,我不知道如何将获取的数据转换为JSON对象,该对象稍后将成为stringify()
变量record
未定义,我不知道如何正确分配它
代码如下:
app.get("/allbooks", (request, response) => {
console.log("someone request to get all books from database")
var records = collection.find()
if(records!=null){
console.log('not empty')
}
var result
records.forEach(function(record) {
if(record!=null) {
console.log(record)
result = result + JSON.stringify(record)
}
}, function(err) {
if(err) {
response.status(500).send(err)
}
console.log(result)
response.send(result)
})
})
正如我所看到的,收集方法“find”返回承诺,请尝试等待
const records = await collection.find();
console.log(records);
另外,检查此方法的接口,它可以将回调fn作为参数。使用lean
const records = await collection.find().lean()
这将生成一个json对象,然后可以很容易地将其字符串化。您可以这样更改和简化代码:
app.get("/allbooks", async (request, response) => {
try {
let records = await collection.find({});
res.status(200).send(JSON.stringify(records));
} catch (error) {
res.status(400).json({ error: error });
}
})