Javascript module.export和node.js。I';我对4行代码心不在焉,我不';我根本不理解这个问题
我目前正在学习使用udemy的node.js,我有一个我完全不理解的问题,因为它不应该发生 因此,本课程是关于使用node.js和module.exports访问外部文件的。我完全按照视频进行操作,但它不起作用 下面是app.js的代码Javascript module.export和node.js。I';我对4行代码心不在焉,我不';我根本不理解这个问题,javascript,node.js,Javascript,Node.js,我目前正在学习使用udemy的node.js,我有一个我完全不理解的问题,因为它不应该发生 因此,本课程是关于使用node.js和module.exports访问外部文件的。我完全按照视频进行操作,但它不起作用 下面是app.js的代码 require('./utils.js') console.log(name); 下面是utils.js const name = 'test' ; module.exports = name; 非常简单,对吧?但它不起作用。我会得到这个错误: iMac
require('./utils.js')
console.log(name);
下面是utils.js
const name = 'test' ;
module.exports = name;
非常简单,对吧?但它不起作用。我会得到这个错误:
iMac-de-user:notes-app user$ node app.js
utils.js
/Users/user/Desktop/notes-app/app.js:3
console.log(name)
^
ReferenceError: name is not defined
at Object.<anonymous> (/Users/user/Desktop/notes-app/app.js:3:13)
at Module._compile (internal/modules/cjs/loader.js:1137:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)
at Module.load (internal/modules/cjs/loader.js:985:32)
at Function.Module._load (internal/modules/cjs/loader.js:878:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47
iMac-de-user:notes-app user$
我试过了,它成功了。所以一开始我想也许它可以访问函数而不是变量?这很奇怪,因为教练这么做了,但这是唯一的解释。所以我保留了它并删除了这个函数,只添加了一个console.log
const getNotes = console.log('test');
module.exports = getNotes
成功了。当时我很奇怪,因为这几乎是我的第一个代码。因此,我尝试再次将名称更改为name(当然,我也在app.js中的console.log()中进行了更改),但没有成功。我查了一下是否是保留关键字?不。我试过测试名称1 nameName。除了getNotes,什么都不起作用(每次我都会在app.js和utils.js中更改名称,所以总共更改了3个常量名称。)
我不明白,就我所知,这是不可能的,也没有任何意义
发生什么事了?我的电脑闹鬼了吗?这可能是非常愚蠢的事情,但我无法理解。我知道这可能有点混乱,所以我包括了2张图片
谢谢你抽出时间
执行如下操作您必须在
要求后将导出的对象或变量存储在新变量中。请确保在要求
语句中给出正确的路径
const name=require('./utils.js')
console.log(name);
输出它
const name = 'test' ;
module.exports = name;
另请参见require(),幸运的是,如果不将变量放入全局范围,则必须将require的结果分配给一个变量。有些语言,如ruby,通过导入污染了全球范围,这是一种糟糕的做法Hanks Andy Ray。你知道当变量被称为getNotes时它为什么工作吗?@尽管没有很好的理由。这绝对不应该起作用,谢谢。它确实有效,但我仍然不明白为什么它与getNotes一起工作,而没有其他东西,或者为什么它在视频中工作得很好?所以我再次检查了讲座,他确实存储了常数,所以这是我的一个错误。
const name = 'test' ;
module.exports = name;