非同期処理のため、
結果1ではresultが出力されるのですが、
結果2ではresultがundefinedとして出力されてしまいます。
なんとかコールバックを使って上手くreturn値をserver.jsの
メソッド呼び出しで取得する事は出来ないでしょうか!?
この戻り値をsocket.ioでクライアントに送信をしたいです。
server.js内にmongoを含むchat.jsを直接書き込む事は
避けたいです。
node.js、javascriptに詳しい方どうかお願いします。
node
1let findall = function(){ 2 MongoClient.connect(url, { useNewUrlParser: true },function(err, db) { 3 4 if (err) throw err; 5 let dbo = db.db("mydb"); 6 dbo.collection("chat").find({},{ projection: { _id: 0 } }).toArray(function(err, result) { 7 if (err) throw err; 8 console.log("結果1:"result); 9 return result ; 10 db.close(); 11 }); 12 }); 13} 14module.exports.findall = findall ; 15
↑chat.js
node
1let chat_find=require("./chat.js").findall ; 2function chat_socket(req,res){ 3 let a = chat_find() ; 4 console.log("結果2:"+a) ; 5 socket.emit("msg_server",data) ; 6 }) ; 7 }); 8};
↑server.js
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/21 10:59