gpt4 book ai didi

node.js - 在 Node JS 上恢复使用 MongoDB Driver 请求的对象

转载 作者:可可西里 更新时间:2023-11-01 10:49:37 27 4
gpt4 key购买 nike

我尝试从 Node JS 文件中的 mongo DB 数据库恢复对象,但它不起作用。

在名为 db.js 的文件中,我编写了以下代码:

var MongoClient = require('mongodb').MongoClient;

module.exports = {
FindinColADSL: function() {
return MongoClient.connect("mongodb://localhost/sdb").then(function(db) {
var collection = db.collection('scollection');

return collection.find({"type" : "ADSL"}).toArray();
}).then(function(items) {
return items;
});
}
};

并且,我尝试在文件 server.js 中使用它:

var db = require(__dirname+'/model/db.js');

var collection = db.FindinColADSL().then(function(items) {
return items;
}, function(err) {
console.error('The promise was rejected', err, err.stack);
});

console.log(collection);

在结果中我有“Promise {}”。为什么?

我只想从数据库中获取一个对象,以便在 server.js 文件中的其他函数中操作它。

最佳答案

Then then 函数在 promise 上调用返回一个 promise。如果在 promise 中返回一个值,则 promise 评估的对象是另一个解析为返回值的 promise。看看this question有关其工作原理的完整说明。

如果您想验证您的代码是否成功获取了项目,您将必须重组您的代码以说明 the structure promise 的。

var db = require(__dirname+'/model/db.js');

var collection = db.FindinColADSL().then(function(items) {
console.log(items);
return items;
}, function(err) {
console.error('The promise was rejected', err, err.stack);
});

这应该在您的项目从数据库中检索后记录它们。

Promises 以这种方式工作,使异步工作更加简单。如果将更多代码放在集合代码下方,它将与数据库代码同时运行。如果您的 server.js 文件中有其他函数,您应该能够从 promise 的主体中调用它们。

通常,请记住 promise 将始终返回 promise

关于node.js - 在 Node JS 上恢复使用 MongoDB Driver 请求的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43412969/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com