非同期関数によって返された値をコンソールに出力しようとすると、未定義になります。nodejs-非同期関数によって返されたデータを保存できません
これは非同期DBHelperModel.js
dumyController.js
におけるモデル関数からデータをフェッチした 、DRYアプローチのために、ヘルパーに書き込まれた機能(DBHelper.js
)を呼び出す私のコントローラ機能(
dumyController.js
)で起こっています
var dbHelpers = require('../helpers/helpers');
exports.dumyControllerFunc = function (req, res) {
var result= dbHelpers.dumyHelperFunc(165);
console.log(result);
};
DBHelper.js
var dbHelp = require('../models/DBHelperModel');
module.exports = {
dumyHelperFunc: function (userId) {
dbHelp.fetchDataFromDB(userId, function (err, rows) {
var res;
if (err) {
return null;
}
else {
res.send(rows.member_code);
}
});
}
};
DBHelperModel.js
var db = require('../db');
var DBHelpers = {
fetchDataFromDB: function (userId, callback) {
var query = `SELECT member_code FROM members where id=?`;
db.query(query, userId, callback);
},
};
module.exports = DBHelpers;
db.js
var mysql = require('mysql');
var connection = mysql.createPool({
host: '127.0.01',
user: 'root',
password: '',
database: 'dumyDB'
});
module.exports = connection;
私は私が原因で機能の非同期性の値が届かないが、誰がどのように私に言うことができます知っています上記のようなアーキテクチャで値を取得します。私はnodeJSが初めてです。ありがとう!
これは機能しませんでした。私はあなたが言及したようにコードを変更した後、コンソールで未定義になってきました。 @Levarne Sobotker – Annabelle
私の投稿を編集します。 –
これは機能しません。私はあなたが提供したバイダルを走らせました。私も同様に定義されていません。私はこれが結果をもたらすとは思わない。 – Annabelle