gpt4 book ai didi

javascript - Nodejs : Can't get data from the module

转载 作者:行者123 更新时间:2023-12-01 02:23:40 24 4
gpt4 key购买 nike

实际上,我想获取数据并将其插入到我的数据库中。如果存在,则不插入数据。并使用ID显示来自DB的数据。

插入新数据后,我必须显示新数据。

我使用 Nodejs 和 MongoDB 以及第三方 API 来获取数据。

Journals.findOne({pubmedId: pubmedID}, function(err, results) {
if (err) {
console.log(err);
res.status(500);
} else if (results) {
res.status(400);
res.send(results);
console.log("PudmedID should be unique. Pubmed Data already exists! " + pubmedID);

} else {
newMedjournalData.save((err, Journals) => {
if (err) {
console.log(err);
res.status(500);
res.send({
"error": "Can't Insert the data " + pubmedID
});
console.log("Can't Insert the data - " + err + " - " + pubmedID);
} else {
res.status(200);
// res.send({ "success": "Successfully Inserted data " + pubmedID });
console.log("Successfully Inserted data " + pubmedID);

var getData = getpubMedData(pubmedID);
console.log(getData);
res.send(getData);
}
});
}
});

我创建了一个函数 - getpubMedData插入数据后从DB获取数据。

但是我从 console.log(getData); 得到了未定义

我提到了Stackoverflow answer

并添加了一个模块 - med_data。

const Journals = require('./models/journals');

var med_data = function (pubmedID) {
console.log(pubmedID);
Journals.findOne({ pubmedId: pubmedID }, function (err, results) {

if (err) {
console.log(err);
return {"error": err};
} else if(results){
console.log(results);
return results;

}
});
}

module.exports = med_data;

并添加以下内容,

const getpubMedData = require('../med_data');

但是在这里,

var getData = getpubMedData(pubmedID);

console.log(getData);

res.send(getData);

我又得到了未定义

如果方法不对,请建议我最好的方法。如果我的逻辑错误,请帮助我解决问题。

最佳答案

I/O 调用在 js 中是异步发生的。您必须提供一种在异步代码结束后恢复数据的方法。您可以使用回调或 promise 来完成此操作。

对于回调,请执行以下操作:

var med_data =  function (pubmedID, callback) {
console.log(pubmedID);
Journals.findOne({ pubmedId: pubmedID }, function (err, results) {

if (err) {
console.log(err);
return {"error": err};
} else if(results){
console.log(results);
callback(results);
}
});
}

// var getData = getpubMedData(pubmedID)
getpubMedData(pubmedID, function(response) {
console.log(response);
res.send(response);
});

关于javascript - Nodejs : Can't get data from the module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48994170/

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