簡體   English   中英

后端節點js文件中的require未定義錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM