[英]require is not defined error in backend node js file
在 CLI nodejs 上下文下執行時,我的 nodejs js 文件拋出錯誤“ReferenceError:require is not defined”。 但是,在 nodejs REPL 交互式 shell 中執行“console.log(require)”會返回有效的 function 定義。
$ cat r.js
console.log(require);
$ node
Welcome to Node.js v12.17.0.
Type ".help" for more information.
> console.log(require);
[Function: require] {
resolve: [Function: resolve] { paths: [Function: paths] },
main: undefined,
extensions: [Object: null prototype] {
'.js': [Function],
'.json': [Function],
'.node': [Function]
},
cache: [Object: null prototype] {}
}
undefined
$ node r.js
(node:8341) ExperimentalWarning: The ESM module loader is experimental.
file:///work/testnodejs/r.js:1
console.log(require);
^
ReferenceError: require is not defined
at file:///work/testnodejs/r.js:1:13
在節點的 REPL 下執行 console.log(require)。
> console.log(require);
[Function: require] {
resolve: [Function: resolve] { paths: [Function: paths] },
main: undefined,
extensions: [Object: null prototype] {
'.js': [Function],
'.json': [Function],
'.node': [Function]
},
cache: [Object: null prototype] {}
}
undefined
在 CLI nodejs 上下文下執行(只需一條語句 console.log(require);)
node helloWorld.js
Function: require] {
resolve: [Function: resolve] { paths: [Function: paths] },
main: Module {
id: '.',
path: '/Applications/node-course',
exports: {},
parent: null,
filename: '/Applications/node-course/helloWorld.js',
loaded: false,
children: [],
paths: [
'/Applications/node-course/node_modules',
'/Applications/node_modules',
'/node_modules'
]
},
extensions: [Object: null prototype] {
'.js': [Function],
'.json': [Function],
'.node': [Function]
},
cache: [Object: null prototype] {
'/Applications/node-course/helloWorld.js': Module {
id: '.',
path: '/Applications/node-course',
exports: {},
parent: null,
filename: '/Applications/node-course/helloWorld.js',
loaded: false,
children: [],
paths: [Array]
}
}
}
require 是 Node.js 中的內置 function,提供了包含存在於單獨文件中的模塊的最簡單方法。 參考nodejs.org
只要你在你的機器上全局安裝了 node 並在 node 的上下文中執行 console.log(require) ,就會像上面一樣打印 function 定義。
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.