如何从 Helper Mysql Promises nodejs 传递数据
How to pass data from Helper Mysql Promises nodejs
我在从文件夹助手传递数据时遇到问题
database.js
const mysql = require('mysql2');
const pool = mysql.createPool({
host: 'localhost',
port:'3306',
user: 'root',
database: '',
password: '',
dateStrings: true
});
module.exports = pool.promise();
helper.js
const Master = require('../models/inspection');
module.exports = {
getLokasi: function (x) {
Master.fetchAll()
.then(([result]) => {
const hasil = result;
return hasil;
})
.catch(err => console.log(err));
}
}
型号inspection.js
const db = require('../util/database');
module.exports = class Master {
constructor(si_id) {
this.si_id = si_id;
}
static fetchAll() {
return db.execute('SELECT * FROM mt_analisa_resiko');
}
};
控制器
const helpers = require('../../util/helpers');
exports.getInspectionDetail = (req, res, next) => {
const test = helpers.getLokasi();
console.log(test);
}
问题总是return未定义
但是当我 console.log(hasil) 在 helper.js 上时它 return 数据。我如何从助手传递数据,以便我可以在我的控制器上使用数据。
您需要return承诺:
module.exports = {
getLokasi: function (x) {
return Master.fetchAll()
.then(([result]) => {
const hasil = result;
return hasil;
})
.catch(err => console.log(err));
}
}
您应该能够访问 returned 值然后:
exports.getInspectionDetail = async (req, res, next) => {
const result = await helpers.getLokasi();
console.log(result);
}
我在从文件夹助手传递数据时遇到问题
database.js
const mysql = require('mysql2');
const pool = mysql.createPool({
host: 'localhost',
port:'3306',
user: 'root',
database: '',
password: '',
dateStrings: true
});
module.exports = pool.promise();
helper.js
const Master = require('../models/inspection');
module.exports = {
getLokasi: function (x) {
Master.fetchAll()
.then(([result]) => {
const hasil = result;
return hasil;
})
.catch(err => console.log(err));
}
}
型号inspection.js
const db = require('../util/database');
module.exports = class Master {
constructor(si_id) {
this.si_id = si_id;
}
static fetchAll() {
return db.execute('SELECT * FROM mt_analisa_resiko');
}
};
控制器
const helpers = require('../../util/helpers');
exports.getInspectionDetail = (req, res, next) => {
const test = helpers.getLokasi();
console.log(test);
}
问题总是return未定义
但是当我 console.log(hasil) 在 helper.js 上时它 return 数据。我如何从助手传递数据,以便我可以在我的控制器上使用数据。
您需要return承诺:
module.exports = {
getLokasi: function (x) {
return Master.fetchAll()
.then(([result]) => {
const hasil = result;
return hasil;
})
.catch(err => console.log(err));
}
}
您应该能够访问 returned 值然后:
exports.getInspectionDetail = async (req, res, next) => {
const result = await helpers.getLokasi();
console.log(result);
}