Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node js module.exports不导出变量_Javascript_Node.js_Node Modules - Fatal编程技术网

Javascript Node js module.exports不导出变量

Javascript Node js module.exports不导出变量,javascript,node.js,node-modules,Javascript,Node.js,Node Modules,我是node.js的新手。我正在使用模块。导出,我遇到了一个问题。我有两个文件: test.js module.exports.lm="abc"; module.exports = "hello"; index.js var p = require('./test.js'); var l = require('./test.js').lm console.log(p); //hello console.log(l); //undefined 有人能解释为什么会这样吗?正如@Ryan所说。问题

我是node.js的新手。我正在使用
模块。导出
,我遇到了一个问题。我有两个文件:

test.js

module.exports.lm="abc";
module.exports = "hello";
index.js

var p = require('./test.js');
var l = require('./test.js').lm
console.log(p); //hello
console.log(l); //undefined

有人能解释为什么会这样吗?

正如@Ryan所说。问题是,首先将
abc
添加到
模块中。导出
,然后创建一个全新的对象,并为其分配字符串
hello

请尝试以下代码:

module.exports = {
  hello: "hello",
  lm: "abc",
};
然后您可以像这样导入这些变量:

var p = require('./test.js').hello;
var l = require('./test.js').lm

除非您在某个地方设置了
module.exports=“hello”
,否则不会发生这种情况。啊,这是一个相当重要的区别。您正在向
模块添加内容。导出
对象,然后用字符串替换整个对象。但是,即使更改顺序:字符串原语也不能有自己的属性。一方面,设置属性后覆盖
。导出
,另一方面
“hello”
是原语字符串值,不能有属性。那么,你到底期望发生什么,还有哪些部分你不明白?