如何在node.js项目子文件夹中使用require()

Bla*_*len 2 javascript require node.js

我的Node.js项目有一个像这样的目录结构:

  • server.js
  • 的package.json
  • ...
  • 上市
    • app.js
    • 的index.html

调用require()工作正常server.js,但当我尝试要求打包时app.js,ReferenceError会抛出一个:

 require is not defined at app.js:1
Run Code Online (Sandbox Code Playgroud)

如何从不在我的项目的全局范围内的文件中要求节点模块?

Rah*_*ngh 5

使用这样的东西 var db = require('../model/db');

它基本上意味着../从当前目录向上移动一步,然后移动到模型然后再移动到db.

您需要使用它来向上移动目录结构,然后在require中使用它.

node.js是一个服务器端Javascript执行环境,它将V8 Javascript引擎与一堆服务器端库相结合.require()是node.js添加到环境中的一个特性.因此,当您在终端中运行节点时,您正在运行包含require()的环境.

require()不是浏览器内置的功能.这是node.js的一个特定功能,而不是浏览器的特定功能.因此,当您尝试让浏览器运行您的脚本时,它没有require().

为了使用Require Js.只需点击此链接即可

  • 问题不在于路径。这是没有定义`require` (2认同)
  • `server.js` 在 NodeJS 中运行。`app.js` 在浏览器中运行(因为它在 `public` 文件夹中)。因此,为了能够在浏览器中使用`require`,他需要在页面上加载[RequireJS](http://requirejs.org/) 库。然后,他需要使浏览器可以使用节点模块 [像这样](/sf/answers/1922498091/)。我不会将此作为答案发布,因为我不确定是否需要其他步骤,但这对我来说似乎合乎逻辑。 (2认同)
  • @BlakeAllen我更新了require js链接,它具有如何在节点js中使用它的步骤.我认为这对你有用. (2认同)