`
yuyongkun4519
  • 浏览: 44641 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Node.js中require加载文件原理

阅读更多

 

nodejs中require函数原理详解

 

例子:当前脚本文件home/project/about/index.js里面执行

require('x')

 

分析其查找顺序:

1,如果x是内置模块 (比如:require("http"))

     从node系统模块查找

2,如果x不是内置文件

   1) 首先确定x的路径可能是下面这些路径,依次查找这些路径

/home/project/about/node_modules/x
/home/project/node_modules/x
/home/node_modules/x
/node_modules/x

   2) 如果x是文件,依次查找下列文件,只要其中有一个存在,就返回该文件,不再执行。

x
x.js
x.json
x.node

   3) 如果x是目录,依次查找目录下面文件,只要其中有一个存在,就返回该文件,不再执行。

x/package.json
x/index.js
x/index.json
x/index.node

3,如果情况如下:

require('/x')或者require('./x')或者require('../x')

首先确定x所在的绝对路径。

    1) 如果x是文件,依次查找下列文件,只要其中有一个存在,就返回该文件,不再执行。

x
x.js
x.json
x.node

    2) 如果x是目录,依次查找目录下面文件,只要其中有一个存在,就返回该文件,不再执行。

x/package.json
x/index.js
x/index.json
x/index.node

 

分享到:
评论

相关推荐

    Node.js-require-node在前端require后端javascript代码并调用

    标题 "Node.js-require-node在前端require后端javascript代码并调用" 涉及到的是将Node.js的模块系统引入到前端JavaScript中,以便在浏览器环境中使用原本只能在Node.js后端运行的代码。这一技术的核心是`require-...

    Node.js-基于require.js的Node打包方案

    在Node.js环境中,`require.js`通常用于浏览器端的模块加载和管理,它遵循AMD(Asynchronous Module Definition)规范,而Node.js自身则使用CommonJS规范处理模块导入。不过,有时候开发者可能希望将使用了require....

    Node.js硬实战 115个核心技巧.pdf

    Node.js是基于Chrome V8引擎的JavaScript运行环境,它以其非阻塞I/O、事件驱动的特性在服务器端编程领域独树一帜,尤其适合构建高性能的网络应用。本书通过115个关键技巧的讲解,全面覆盖了Node.js的基础到高级应用...

    Node.js 中文手册 中文文档 chm

    2. **模块系统**:Node.js 采用 CommonJS 规范,通过 `require` 函数加载模块,实现了代码的模块化,便于代码组织和复用。内置的 `module` 和 `exports` 对象使得模块间的通信变得简单。 3. **V8引擎**:Node.js ...

    《Node入门一本全面地Node.js教程》PDF

    - **模块系统**:Node.js内置了强大的模块系统,使用`require`函数可以加载和使用模块,如`fs`用于文件操作,`http`用于创建HTTP服务器。 - **CommonJS**:Node.js遵循CommonJS规范,允许模块间的代码复用。 2. *...

    Node.js-draxt.js–一个工具模块用于在Node.js环境中选择和操作文件系统对象

    5. 流式操作:Node.js 中的文件操作常常涉及流(Stream),draxt.js 可能会集成流的概念,使得大文件处理更加高效,不会一次性加载整个文件到内存中。 6. 高级功能:draxt.js 可能还包含一些高级特性,比如文件过滤...

    Node.js 中文手册

    通过`require`函数,我们可以加载并使用其他模块,而通过`module.exports`或`exports`,我们可以导出模块中的功能供其他模块使用。 **4. 文件系统操作** Node.js 提供了一套丰富的文件系统API,允许开发者进行文件...

    Node.js-node.js中文资料导航

    2. **模块系统**:Node.js 采用了 CommonJS 规范,允许代码按需加载模块,通过 `require` 和 `module.exports` 进行导入和导出。此外,npm(Node Package Manager)是其强大的依赖管理工具,拥有海量的第三方模块,...

    Node.js-spdy-node.js中的SPDY服务器

    Node.js 是一个基于Chrome V8引擎的JavaScript运行环境,它让开发者可以使用JavaScript在服务器端编写高性能的网络应用。而SPDY(发音为 "speedy")是Google提出的一种网络协议,旨在提高网页加载速度,减少延迟,...

    Node.js入门经典源代码

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript进行编程。这个"Node.js入门经典源代码"压缩包文件显然包含了用于学习和理解Node.js基础知识和实践的源代码示例。以下是...

    Node.js-git-js一个轻量级接口用于在任何node.js应用程序中运行git命令

    Git-js是针对Node.js环境设计的一个轻量级库,它提供了一个简单易用的接口,允许开发者在他们的Node.js应用中直接调用Git命令,无需离开JavaScript的舒适区。 ### Git-js核心特性 1. **轻量级**:Git-js的核心设计...

    Node.js中require的工作原理浅析

    Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它使得JavaScript能够在服务器端执行,它使用了一种模块化和包管理的机制,而在Node.js中模块的加载和引入主要通过require函数来实现。Node.js的模块加载机制...

    新时期的Node.js入门.pdf

    6. **流(Stream)**:Node.js中的流是处理大量数据的有效方式,它允许数据以块的形式进行处理,而不是一次性加载整个数据集。 7. **事件和回调**:事件驱动是Node.js的核心,理解事件发射器和事件监听器的工作原理至...

    Node.js Design Patterns Second Edition.pdf

    而Node.js中的CommonJS模块规范,提供了require()函数来加载模块,并且每个文件都具备独立的作用域,帮助开发者更清晰地管理变量和依赖。 在Node.js中,异步编程是核心概念之一,设计模式在这一方面也扮演着重要...

    Node.js应用开发 客观练习题1.doc

    8. 在Node.js中加载http模块,需使用`require('http')`。 9. 搭建服务器通常使用Node.js的`http`模块。 10. `__dirname`属性用于获取当前工作目录。 11. `./`前缀代表当前路径。 12. 当客户端请求到来时,`request`...

    无涯教程(LearnFk)-Node.js教程离线版.pdf

    Node.js的应用程序由三个重要组件构成:首先,需要加载Node.js模块,这通常通过require指令实现;其次,创建一个服务器,该服务器可以监听来自客户端(如浏览器或控制台)的请求;最后,服务器将读取请求并返回相应...

    vue.js+node.js 实战项目视频及源码

    6. **文件系统**:Node.js 提供fs模块,方便读写文件,如加载播放器的媒体资源。 实战项目中的知识点: 1. **前后端分离**:Vue.js 作为前端负责用户界面,Node.js 作为后端处理数据和业务逻辑。 2. **API接口设计*...

    Node.js 设计模式(英文)

    1. 模块化设计:在Node.js中,模块化是组织代码的基本方式,通过require()函数可以加载本地或者远程模块。模块化的优点包括减少全局作用域污染、提高代码复用性和维护性等。 2. 回调模式:回调是Node.js处理异步...

    深入浅出node.js 田永强著

    7. **流(Stream)**:Node.js中的流是一组可以读取或写入的数据对象,它们可以处理大量数据,如文件、网络数据,而无需一次性加载到内存中,降低了内存占用,提高了处理大文件的效率。 8. **包管理器npm**:Node.js...

    Node.js权威指南源代码

    2. **模块系统**:在chapter2中,可能涉及Node.js的模块系统,包括如何使用require()加载模块,以及exports和module.exports的区别,还可能涵盖CommonJS规范和npm(Node包管理器)的使用。 3. **网络编程**:...

Global site tag (gtag.js) - Google Analytics