使用Vanilla NodeJS。 (即没有框架)
在名为index.js
的{{1}}中有一个我想在事件处理程序中使用的函数。
toData()
函数将导出为toData()
中的默认导出。
index.js
的相关部分如下所示:
index.js
我导入并尝试使用它的文件如下所示:
function pushToData(input, title) {
data[title] = input;
console.log(data);
if (isDataFull()) {
mainEvents.emit("format-export");
}
}
module.exports = pushToData;
最大的问题是我得到了:
const mssql = require("mssql"); const events = new require("events"); const tagList = require("./tag"); const toData = require("./index"); const tagEvents = new events.EventEmitter(); const sqlAuth = { /*....SQL Auth Details....*/ }; tagEvents.on("b2bloaded", function(data) { data = tagList(data, "ESB", "CustomerID"); toData(data, "B2B"); }); /*....Additional event handlers omitted due to similarity...*/ function generateSqlData(item) { const pool = new mssql.ConnectionPool(sqlAuth, err => { switch (item) { case "B2B": pool .request() .query( `select top (100) * from [AspDotNetStoreFrontB2B].[dbo].[Customer]` ) .then(res => { tagEvents.emit("b2bLoaded", res.recordset); }) .catch(err => console.error(err)); break; /*....Other Cases Omitted as they operate similar....*/ default: break; } }); } module.exports = { generateSqlData };
proto :错误{constructor :, name:" TypeError",message:"",...}
我不确定为什么它没有按预期运行。为什么函数没有正确定义,或者在调用时没有运行?
答案 0 :(得分:-1)
我建议像这样输出你的功能:
export.pushToData(input, title) {
data[title] = input;
console.log(data);
if (isDataFull()) {
mainEvents.emit("format-export");
}
}
并以这种方式使用它:
const mssql = require("mssql");
const events = new require("events");
const tagList = require("./tag");
const toData = require("./index");
const tagEvents = new events.EventEmitter();
const sqlAuth = {
/*....SQL Auth Details....*/
};
tagEvents.on("b2bloaded", function(data) {
data = tagList(data, "ESB", "CustomerID");
toData.pushToData(data, "B2B");
});