nodejs的require模块及路径

在nodejs中,模块大概可以分为核心模块和文件模块。

核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require(‘net’))。

文件模块,则是指js文件、json文件或者是.node文件。在引用文件模块的时候后要加上文件的路径:/…/…/xxx.js表示绝对路径、./xxx.js表示相对路径(同一文件夹下的xxx.js),../表示上一级目录。如果既不加/…/、../又不加./的话,则该模块要么是核心模块,要么是从一个node_modules文件夹加载。

对于加载模块时既没指出./ ../
/…/时,加载模块的搜索路径。如果‘/home/ry/projects/foo.js‘ 中的文件调用了 require(‘bar.js’) ,node将在下面的位置进行搜索:

?/home/ry/projects/node_modules/bar.js
?/home/ry/node_modules/bar.js
?/home/node_modules/bar.js
?/node_modules/bar.js

文件夹作为模块:

首先在文件夹的根下建立package.json文件,它标识了一个主模块。一个package.json中的内容可能如下:

{ "name" : "some-library", "main" : "./lib/some-library.js" }

如果这是在一个文件夹./some-library下,那么require(‘./some-library’)时将试图加载./some-library/lib/some-library.js
如果在这个目录下没有package.json文件,node将试图从这个目录下加载index.js或index.node文件。例如,如果上面没有package.json文件,那么require(‘./some-library’)时,将试图加载下面的文件:

?./some-library/index.js
?./some-library/index.node

nodejs的require模块及路径,布布扣,bubuko.com

时间: 2024-10-10 04:52:52

nodejs的require模块及路径的相关文章

nodejs require模块找不到怎么解决?

用npm全局安装模块后,有时在程序使用的时候require会报找不到模块,要如何解决?nodejs是在module.paths包含的目录列表中寻找模块的,所以,要解决这个问题就是将全局模块加入到module.paths目录列表中. 全局安装模块后在程序里面require这个模块报错,模块找不到.如下图所示,首先按照正常的方式npm install -g express全局安装express模块.然后在测试require('express')报错 那么问题就出在nodejs怎么查找模块上.首先,我

angular的require模块开发部分步骤内容

angular利用require.js和nodejs的一个模块式开发部分步骤小结: 第一部分:Node.js的下载,npm的安装,http服务的使用 1.下载并安装 node.js 2.工作目录下写一个package.json文件内容:"scripts": {"start": "http-server -a 0.0.0.0 -p 8000",}-p 端口号 (默认 8080) -a IP 地址 (默认 0.0.0.0) 3.开始菜单搜索的地方,输

Nodejs中关于模块的总结

关于Nodejs中的模块 概念 Nodejs在ECMAScript的基础上扩展并封装了许多高级特性,如文件访问.网络访问等,使得Nodejs成为一个很好的Web开发平台.基于Nodejs这个平台将Web开发常用的一些功能进行封装,称为模块. 1.系统模块 1. 模块被加载后才能使用,Nodejs提供了全局的函数require加载模块. 1.os模块 获取当前操作系统信息 2.fs模块 文件读写操作 3.path模块 路径处理 2. require加载模块路径 相对路径: 如 ./ 或 ../ 绝

nodejs学习(模块的简单了解)

1.模块模块(Module)是nodejs最重要的支柱,开发一个具有一定规范的程序不可能只用一个文件, 通常我们需要把各个功能拆分,封装,然后在组合在一起,模块正是为了现在这种方式而诞 生的.在浏览器的javascript中,脚本模块的拆分和组合通常情况下我们都使用Html的 Script标签来实现,但是nodejs给我们提供了require这个函数来调用其他的模块.-----------------------------------------------------------------

nodejs笔记2-http模块

nodejs 的模块的操作都是异步的:fs对文件的操作,... 1.引入http模块,require , createServer ,listen  .... code: // > node  http.js var http = require('http');//引入http模块var server = http.createServer(function(request,response){ console.log('welcome here'+request.url);//控制台  re

nodejs笔记2-mysql模块

1.mysql模块 不是nodejs的官方模块,是属于第三方的模块 > npm install mysql    //自动安装包括mysql模块依赖的其它的包 其实这安装的就是mysql的一个客户端, 2.  code: 返回的值: err 如果为null ,操作成功 ,否则失败, 操作成功返回的data数据 是object类型,需要使用 JSON.stringify(data)转换成json格式的字符串. var mysql = require('mysql');//引入http模块 var

Nodejs中cluster模块的多进程共享数据问题

Nodejs中cluster模块的多进程共享数据问题 前述 nodejs在v0.6.x之后增加了一个模块cluster用于实现多进程,利用child_process模块来创建和管理进程,增加程序在多核CPU机器上的性能表现.本文将介绍利用cluster模块创建的多线程如何共享数据的问题. 进程间数据共享 首先举个简单的例子,代码如下: var cluster = require('cluster'); var data = 0;//这里定义数据不会被所有进程共享,各个进程有各自的内存区域 if

关于Nodejs的多进程模块Cluster

关于Nodejs的多进程模块Cluster 前述 我们都知道nodejs最大的特点就是单进程.无阻塞运行,并且是异步事件驱动的.Nodejs的这些特性能够很好的解决一些问题,例如在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟.通过事件注册.异步函数,开发人员可以提高资源的利用率,性能也会改善.既 然Node.js采用单进程.单线程模式,那么在如今多核硬件流行的环境中,单核性能出色的Nodejs如何利用多核CPU呢?创始人Ryan Dahl建议,运行多个Nodejs

python模块搜索路径

1.电脑版 (1).python安装目录中\Lib\site-packages\下建立*.pth文件,写入模块路径 (2).添加环境变量:变量名:pythonpath;变量值:模块(文件夹)路径 ,若有多个,用半角分号";"隔开 2.手机版 在resource\site.py文件中添加代码段 import syssys.path.append("模块(文件夹)路径") 发现:第一个参数都是C:\\resource 我的理解: 程序安装盘下的site.py指定模块路径