首先,我已经检查了有关堆栈溢出的所有问题。
我正在尝试将变量str
的值在函数内部更新到另一个模块,但是将其导出到另一个文件后却显示undefined
。
但是,如果我在函数外部更新变量的值,则导出工作正常。
我在Excel.js文件中有一个带有代码的函数
var str='abc';
wb.xlsx.readFile(filePath).then(function()
{
var sh = wb.getWorksheet("Sheet1");
console.log("YOUR LECTURE IS",sh.getRow(goingSlot+1).getCell(DAY+1).value);
//console works fine
str="YOUR LECTURE IS"+sh.getRow(goingSlot+1).getCell(DAY+1).value;
//the assignment here leads to undefined after exporting
}
str="something";
//this successfully exports the value as something
然后使用语法将其导出到我的主文件中
exports.str=str;
如果您需要查看主文件的代码
主文件的代码为
const express=require('express');
const app=express();
const myle=require('./readingExcel.js');
const res=myle.name;
console.log(res);
//CONSOLE SHOWS UNDEFINED
答案 0 :(得分:1)
exports.str
和str
不是相同的变量,即使您写exports.str = str
var a = 2;
var b = a;
a = 4;
console.log(b) // b is still 2 and not 4
因此,请直接使用exports.str
而不是str
。
exports.str = 'abc'
// ...
exports.str="YOUR LECTURE IS"+sh.getRow(goingSlot+1).getCell(DAY+1).value;
// ...
exports.str = 'something'
答案 1 :(得分:0)
我只想在@ t.niese的回复中添加一些内容(我认为这很可靠)。
检查您的代码中是否有任何模式。exports.str分配后发生任何导出。出口和module.exports通常指向同一位置,但我总是使用module.exports。使用导出有被其他地方覆盖的风险(module.exports也是如此,但这是节点使用的实际引用)。
https://medium.freecodecamp.org/node-js-module-exports-vs-exports-ec7e254d63ac