所以我在node.js(初学者)工作,我正在尝试使用不同脚本中的变量。我发现有时变量会以未定义的形式返回。例如:
//Doesnt like this
var peaches = 'Peaches';
exports.peaches;
// Likes
exports.peaches = 'Peaches'
现在,我需要这个脚本,我发现如果我使用top方法,打印输出是'undefined',而使用第二种方法,打印输出是'Peaches'。
这不会对我产生太大的影响(因为我总是可以使用第二种方法),但是,当我尝试使用第二种方法导出数组时,它会打印为未定义的。但令人困惑的是,这只会在我尝试导入两个数组时发生(第二个将始终给出'undefined'但另一个将起作用。这是否与程序的执行流程有关?(所以它有时间执行第一个脚本,但不执行第二个脚本?
答案 0 :(得分:4)
试试这个:
var peaches = 'Peaches';
exports.peaches = peaches;
在你的第一个"方法"你实际上并没有出口任何东西。
exports
变量只是为每个变量创建的普通JavaScript对象
你的模块。
答案 1 :(得分:0)
通常,如果要返回任何javascript模块或Object。
您使用module.exports
对象,module.exports
是您需要导出模块时返回的实际对象。
您用于导出的exports
对象,它是module.exports
的简写“别名”。
现在,由于您尚未为exports
对象分配任何对象,因此它未定义。
以这种方式思考。
object = {
key1:'value1',
key2:'value2'
}
console.log(object[key1]) // value1
console.log(object[key2]) // value2
//Now, if you try to access something that is not assigned
console.log(object[key3]) // undefined
您的出口对象也发生了同样的情况,
当你这样做时,你没有为exports.peaches
分配任何内容。
exports.peaches //hence undefined while import
相反,做
exports.peaches = 'peaches'
我希望有道理!。