首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NodeJs要求(‘./file.js’)问题

NodeJs要求(‘./file.js’)问题
EN

Stack Overflow用户
提问于 2012-07-30 17:30:17
回答 3查看 87.7K关注 0票数 69

我有问题,包括在我的NodeJs项目中要执行的文件。

我在同一个目录中有两个文件:

a.js

代码语言:javascript
运行
复制
var test = "Hello World";

b.js

代码语言:javascript
运行
复制
require('./a.js');
console.log(test);

我使用b.js执行node b.js并获得错误ReferenceError: test is not defined

我已经翻阅了文档modules

我遗漏了什么?提前谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-07-30 17:35:28

更改a.js以导出变量:

代码语言:javascript
运行
复制
exports.test = "Hello World";

并将require('./a.js')的返回值赋给一个变量:

代码语言:javascript
运行
复制
var a = require('./a.js');
console.log(a.test);

您将经常看到并可能使用的另一种模式是将某些东西(一个对象、函数)赋值给module.exports a.js中的a.js对象,如下所示:

代码语言:javascript
运行
复制
module.exports = { big: "string" };
票数 100
EN

Stack Overflow用户

发布于 2012-07-30 17:35:19

你误解了应该发生的事。模块中定义的变量不共享。NodeJS对他们进行观察。

您必须用module.exports返回它。

a.js

代码语言:javascript
运行
复制
module.exports = "Hello World";

b.js

代码语言:javascript
运行
复制
var test = require('./a.js');
console.log(test);
票数 23
EN

Stack Overflow用户

发布于 2017-04-08 21:31:27

如果要在另一个file.There中导出变量,则有两种模式。一个是a.js

这里的global.test = "Hello World"; //test是全局变量,但它将受到污染。

另一个是

a.js module.exports.test = "Hello World";或exports.test= "Hello“;b.js var test = require('./a.js'); //test in b.js可以在a.js console.log(测试)中获得测试;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11726525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档