我創建了一個應用程式,我想要實作的是當應用程式運行時,uid從表中獲取user并將其插入到新表中msg,代碼如下。
conn.js
'use strict'
const { MongoClient } = require('mongodb');
const client = new MongoClient(dbUrl, { useNewUrlParser: true });
client.connect(function (err) {
if (err) {
console.log(err);
} else {
console.log('mongodb connected');
}
});
const db = client.db(dbName);
module.exports = db;
應用程式.js
'use strict';
const db = require('./conn');
try {
let to = "nick";
let from = "susan";
let content = "test";
let userinfo = db.collection("user").findOne({name: to});
let uid = userinfo.uid;
console.log(uid)
db.collection("msg").insertOne({from: from, to: to})
} catch(e) {
console.log(e)
}
但它運行,列印日志的顯示順序是
undefined
mongodb connected
uid是undefined,因為資料庫還沒有連接,如何解決這個問題?謝謝你。
uj5u.com熱心網友回復:
您需要確保您的資料庫查詢是async自然的。
如果你正在使用async/await,你可以做
let userinfo = await db.collection("user").findOne({name: to});
let uid = userinfo.uid;
console.log(uid);
await db.collection("msg").insertOne({from: from, to: to});
您也可以then/catch使用
db.collection("user").findOne({name: to}).then(userinfo => {
let uid = userinfo.uid;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/467805.html
