javascript - 我应该从哪里调用 module.exports 来获取非空值?
问题描述
我应该在哪里调用module.export
,我认为它应该是一个回调函数。
但是我很困惑我应该在哪里调用回调函数。
我仍然对解决方案感到困惑,对我来说太复杂了。
sql.connect(config, function(err) {
if (err)
console.log(err);
// create Request object
var request = new sql.Request();
// query to the database and get the records
request.query('select part_num,qty from CRM.CRM.Fishbowl_Inventory where not location = \'Shipping\'',
function(err, recordset) {
if (err)
console.log(err)
// send records as a response
var details = recordset;
});
});
module.exports = details;
混乱:
非常抱歉打扰你们,但我想确保通过 Javascript 参与任何数据库请求不会对我们的数据库造成伤害。
我正在直接使用我们的生产数据库进行测试,因此谨慎
因此,Max 在他的回答中提供了以下代码
const connectToSql = require('./connectToSql');
connectToSql()
.then(details => {
console.log(details);
//Here I can do as much logic as I want
//And it won't affect my database or call multiple requests on my DB
})
.catch(err => {
console.log(err);
});
我能理解我在问超级愚蠢的问题,对此非常抱歉。
解决方案
您无法导出函数的结果。您想要导出一个将返回您的值的函数。像这样:
function connectToSql(config) {
return new Promise((resolve, reject) => {
sql.connect(config, function (err) {
if (err) {
console.log(err);
reject(err);
}
// create Request object
var request = new sql.Request();
// query to the database and get the records
request.query('select part_num,qty from CRM.CRM.Fishbowl_Inventory where not location = \'Shipping\'',
function (requestErr, recordset) {
if (err) {
console.log(requestErr);
reject(requestErr);
}
resolve(recordset);
});
});
});
}
module.exports = connectToSql;
因为你的函数是异步的,所以我返回了一个承诺,它将返回你的结果。此外,查询中的第二个错误的名称与连接中的第一个错误相同。那会引起问题。
如何使用它的示例:
const connectToSql = require('./connectToSql');
connectToSql()
.then(details => {
console.log(details);
})
.catch(err => {
console.log(err);
});
推荐阅读
- opengl-es - 为什么 Xorg 服务器在使用 Buildroot for Raspberry Pi4 创建的系统上失败?
- python - 单元测试是如何执行的?
- git - Git:如何在使用--single-branch 克隆的本地存储库中获取另一个远程分支?
- angular - Dynamic 365 如何将客户端 API 执行上下文获取到 Angular Web 资源中
- reactjs - 在 AWS EC2 实例上为 React App 获取 404 错误
- flamegraph - 火焰图和火焰图和火焰图中的绘制时间
- linux - 下载和安装 openshift cli 命令不起作用
- node.js - 如何在nodejs javascript mysql中从Sun May 04 1980 00:00:00 GMT + 0500(巴基斯坦标准时间)用月/日/年格式化日期
- python - 如何使用函数将传递给另一个函数的参数平方?
- python - CCXT okex5 掉期合约