gpt4 book ai didi

node.js - 使用 NodeJS Promise 查询 MongoDB

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:19 25 4
gpt4 key购买 nike

我正在使用 WATSON API 构建一个聊天机器人,该机器人发送艺术家数据以提供用户的输入。我正在尝试使用 Node.js Promise 来查询我的数据库并打印出数据,因为数据库访问是异步的。

所以 artpromise 函数是一个接受艺术家姓名并查询数据库以将结果保存在“result”变量中的函数。然后我尝试打印结果(在聊天机器人中,我实际上将结果打印给用户)。

但是我没有得到我想要的结果,并且不断出现语法错误。任何帮助将不胜感激。

let arttistinfo;

function artpromise (artist) {
return new Promise(function(resolve, reject) {
const MongoClient = require("mongodb").MongoClient;
const url = 'mongodb://majac.co.kr:27017/artbot';
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("artbot");
var query = {name: artist};
artistinfo = dbo.collection("artistdb").find(query)
.toArray(function(err, result) {
if (err) throw reject(err);
resolve(result);
});
db.close();
}
});
)};


let artist = "Jan Tarasin";
artpormise.then(function(artist) {
console.log(result);
});

最佳答案

我会像这样重写,我可以看到您的代码存在少量问题,但这现在对我有用:

function artpromise (artist) {
return new Promise(function(resolve, reject) {
const MongoClient = require("mongodb").MongoClient;
const url = 'mongodb://majac.co.kr:27017/artbot';
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("artbot");
var query = {name: artist};
artistinfo = dbo.collection("artistdb").find(query)
.toArray(function(err, result) {
if (err) throw reject(err);
resolve(result);
});
db.close();
});
});
};

let artist = "Jan Tarasin";
artpromise(artist).then(function(result) {
console.log(result);
});

我得到以下结果:

[{
_id: 5abdbc18423795deaaff0d8e,
nationality: 'Polish',
art_link: 'https: //media.mutualart.com/Images/2016_06/29/20/203606422/0532d043-71f6-47bc-945e-aeededd2d483_570.Jpeg',
years: '1926',
name: 'JanTarasin',
art_title: '"Falujace watki I",
2003r.'
}]

关于node.js - 使用 NodeJS Promise 查询 MongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49569949/

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