【发布时间】:2019-08-25 14:53:07
【问题描述】:
我是 mongoDB 和 node.js 的新手。我在使用 node.js 获取 mongoDB 集合数据时遇到问题。
我已经连接了 mongodb 并尝试从一个控制器获取一个集合信息到另一个控制器,但是我遇到了类似结果未定义的问题。
请看下面的代码,可能有助于理解
用户注册控制器.js
let response = {};
MongoClient.connect(config.Database.DFARM.connectString, async function (err, client) {
if (err) {
let connError = new Error(500, "Error connecting to DFARM database", err);
// res.status(connError.status).json(connError);
response.status = false;
response.message= connError;
response.secret = '';
return response;
console.log("console3", response);
// return response;
}
else {
response.status = false;
response.message= 'An identity for the admin23 user "admin" does not exist in the wallet, call the enrollAdmin application before retrying '
response.secret = '';
// return response;
console.log("console", response);
// return response;
client.db(config.Database.DFARM.dbName).collection("User").find(query1).toArray(function (err, docs) {
if(err)
{
console.log('err db',err);
response.status = false;
response.message= err;
response.secret = '';
console.log("console7", response);
return response;
}
else{
console.log('Username DB',docs);//this is result
console.log('Username DB',docs[0].secret);
secret = docs[0].secret;
query1.secret = secret;
// setTimeout(() => console.log(name), 5 * 10)
console.log('Role',query1);
// output.docs = docs[0].name;
// // res.json(output);
// console.log('Role',output);
response.status = true;
response.message= 'secret generate';
response.secret = secret;
return response;
// res.json(docs);
client.close();// look after sometimes
}
})
}
})
用户控制器.js
UserEnrollController = new UserEnrollController();
UserEnrollController.UserEnroll1(VZID).then((result) => {
setTimeout(() => {
console.log("data result", result)
}, 8000);
我正在尝试使用 .then 结果获取数据,但它显示未定义。所以我放了一些延迟,以便我可以获取数据,但是我仍然得到未定义的结果,但是它应该是“用户名数据库”数据,如下所述。
username prassemp
Username DB [ { _id: 5d5af662dac4af4733802e44,
LOGIN_ID: 'prassemp',
FIRSTNAME: 'prassemp',
LASTNAME: 'kumar',
ROLEID: '5',
PHONE: '5657624345',
EMAIL: 'prassemp@gmail.com',
USERNAME: 'prassemp',
PASSWORD: 'BK@love123',
REPASSWORD: 'BK@love123',
otp: true,
profile: 'true',
approved: 'true',
profileimage: true,
verification: true,
STATUS: 'ACTIVE',
END_DATE: '',
CREATE_DATE: 2019-08-19T19:20:01.000Z,
CREATE_BY: 'testuser',
MODIFIED_DATE: 2019-08-25T12:46:33.000Z,
MODIFIED_BY: 'test user',
DOB: '',
ADDRESS_LINE_1: '',
ADDRESS_LINE_2: '',
ID_CARD: '',
LOGIN_ID_UPPER: 'PRASSEMP',
LAST_LOGGED_IN: '',
SUPERVISOR: 'Abhi',
secret: 'PEDqgsOCllDG' } ]
Username DB PEDqgsOCllDG
Role { USERNAME: 'prassemp', secret: 'PEDqgsOCllDG' }
secreat PEDqgsOCllDG
data result undefined // **here getting result as undefine however it should be data as in "Username DB"**
请帮助我被困在这里很长时间,从任何地方都没有得到任何可以解决我问题的东西。
谢谢
【问题讨论】: