gpt4 book ai didi

javascript - Node.js如何知道express.js位置

转载 作者:太空宇宙 更新时间:2023-11-04 00:33:51 25 4
gpt4 key购买 nike

我的node.js服务器如何知道如何找到express.js文件?

在我的 server.js 文件中,我有一个 express 的要求:

var express        = require('express');
var app = express();

我的 server.js 文件位于 app 文件夹中,而express.js 位于 app\node_modules\express\lib 文件夹中:

Server.js File

express.js 位于 lib 目录

Express.js File

node.js 是否自动知道在 node_modules 中查找依赖项?任何地方都没有直接枚举路径 - 我在代码中没有看到它。

这是a sample project from scotch.io我正在尝试将其拆开并学习。我对 MEAN 堆栈还很陌生,我正在尝试从基础层面理解这一点。

仅供引用,这是 Node v 4.5.0

最佳答案

评论已经涵盖了主要答案,但我将尝试在这里对其进行分解,以获得对该主题的稍微更完整的概述(并非全部包含)。简而言之, Node 会在 Node 的核心(内置)包中查找,然后在项目的 node_modules 路径中查找与名称匹配的模块(包,但我们通常require 模块)。 1

包安装、保存和位置

Node 使用 npm 安装依赖项,可以是“dependency”或“devDependency”;后者用于解决正常使用模块不需要的开发问题。我们使用标志 --save--save-dev (例如 npm installexpress --save)将它们保存到项目的 package.json 中。 2

package.json 文件位于项目树的根部(项目的文件夹/目录),包含依赖项信息以及其他信息。 3这定义了一个“包”。当某人将包发布到npmjs时,通过 npm 安装的软件包的(默认)注册表,它们应该包含一个格式良好的 package.json,其中列出了它自己的依赖项、要包含的文件,以及从什么开始的“主”文件(如果在 require 语句中使用它)。

克隆项目存储库后,通过运行 npm install 安装的依赖项会将 package.json 中指定的包安装到项目根目录中的 node_modules 路径(您应该从中运行安装命令)。

边注

检查后the GitHub repo根据您引用的文章列出的内容,您似乎已经在 app/ 目录中创建了每个文件。

要求

在 Node 中使用 require 语句的样式为 CommonJS对于 Node,首先(在核心包之后)在 node_modules/ 路径中查找,或者,如果指定文件夹或文件的相对路径,则可以直接获取它。相对路径意味着它以 ./ 开头作为当前工作目录(文件从中执行)的前缀,以 ../ 开头表示当前工作目录之上的目录,等等。还有其他处理路径的方法,例如内置于 Node 4 中的 path 模块。 。例如,以下内容是有效的:

  • require('./some-other.js') require 在该文件的 module.exports 中,来自 some-other.js 文件 5 ,在当前相对路径中
  • require('./some.json') 将从 .json 文件引入 JSON 格式的内容 6 ,在当前相对路径中
  • require('./routes') 还将/可以从 routes/ 路径(目录)引入导出的内容,默认情况下,该内容将以目录的 index.js 开头(如果存在的话)7

最后一种方法是一种很好的方法,能够引入更复杂的需求,而无需将所有内容保存在一个过于繁忙的文件中。

关于javascript - Node.js如何知道express.js位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39982045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com