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

(0)

相关推荐

  • nodejs文件操作模块FS(File System)常用函数简明总结

    件系统操作相关的函数挺多的.首先可以分为两大类. 一类是异步+回调的. 一类是同步的. 在这里只对异步的进行整理,同步的只需要在函数名称后面加上Sync即可 1. 首先是一类最常规的读写函数,函数名称和形式,应该是起源于C语言的. 复制代码 代码如下: fs.open(文件路径,读写标识,[文件mode值,666],回调函数(err,文件句柄fd));          fs.read(文件句柄fd,被写入的buffer,offset,length,position,回调函数(err, byte

  • NodeJS使用formidable实现文件上传

    最近自学了一下NodeJS,然后做了一个小demo,实现歌曲的添加.修改.播放和删除的功能,其中自然要实现音乐和图片的上传功能.于是上网查找资料,找到了一个formidable插件,该插件可以很好的实现文件的上传功能.该小demo用到了MySQL数据库,所有的数据都存放到了数据库中.下面简单说一些如何使用. 1.创建app.js主文件 const express = require('express'); const router = require('./router'); const pat

  • nodejs的压缩文件模块archiver用法示例

    本文实例讲述了nodejs的压缩文件模块archiver用法.分享给大家供大家参考,具体如下: 发现了个更好用的 zip-local https://www.npmjs.com/package/zip-local var zipper = require("zip-local"); zipper.sync.zip("/Users/xxx/xx/xx").compress().save("/Users/xxx/xx/xx.zip"); 如下代码实现

  • Node.js复制文件的方法示例

    本文实例讲述了Node.js复制文件的方法.分享给大家供大家参考,具体如下: 本人开发过程中,经常遇到,要去拷贝模板到当前文件夹,经常要去托文件,为了省事,解决这个问题,写了一个node复制文件. // js/app.js:指定确切的文件名. // js/*.js:某个目录所有后缀名为js的文件. // js/**/*.js:某个目录及其所有子目录中的所有后缀名为js的文件. // !js/app.js:除了js/app.js以外的所有文件. // *.+(js|css):匹配项目根目录下,所有

  • Node.js中常规的文件操作总结

    前言 Node.js 提供一组类似 UNIX(POSIX)标准的文件操作API. Node 导入文件系统模块(fs)语法如下所示: var fs = require("fs") fs模块是文件操作的封装,它提供了文件的读取.写入.更名.删除.遍历目录.链接等POSIX文件系统操作.与其他模块不同的是,fs模块中所有的操作都提供了异步和同步的两个版本,例如读取文件内容的函数有异步的fs.readFile()和同步的fs.readFileSync() . 一. 目录操作 1. 创建目录 创

  • node.js文件上传处理示例

    直入主题,在Node.js web 开发基本框架的前提下,我们来做一个文件上传功能 上传的handler比较简单,网上都能找到 var url=require('url'); var exec=require('child_process').exec; var querystring=require('querystring'); /********************************文件上传 第3方模块测试*************************/ function f

  • 浅析Node.js实现HTTP文件下载

    前言 HTTP实现文件下载时,只要在服务器设置好相关响应头,并使用二进制传输文件数据即可,而客户端(浏览器)会根据响应头接收文件数据.而在Node.js中,设置好响应头后,读取文件流,再使用".pipe()"方法将流转接到响应对象Response就可以实现一个简单的文件下载服务器. 1. 文件下载介绍 HTTP基于请求头和响应头实现状态交互,在得到服务器正确响应状态后,而客户端首先会解析响应头,并根据响应头来接收和展示数据(响应体).对于文件下载来说,其实现过程如下: 1.客户端发起文

  • Nodejs关于gzip/deflate压缩详解

    0x01.关于 写http时候,在接收http请求时候,出现乱码,后来发现是gzip没有解压. 关于gzip/deflate压缩,有放入管道压缩,和非管道压缩方法. 0x02.管道压缩 Node中的I/O是异步的,因此对磁盘和网络的读写需要通过回调函数来读取数据. 当内存中无法一次装下需要处理的数据时,或者一边读取一边处理更加高效时,我们就需要用到数据流. NodeJS中通过各种Stream来提供对数据流的操作. 官网提供了管道方法: 复制代码 代码如下: // client request e

  • nodejs下打包模块archiver详解

    archiver是一个在nodejs中能跨平台实现打包功能的模块,可以打zip和tar包,是一个比较好用的三方模块. 使用前先安装archiver模块. 复制代码 代码如下: npm install archiver 建立一段代码 复制代码 代码如下: var archiver = require('archiver'); var fs = require('fs'); //被打包文件 var files = [   'files/001.png',   'files/002.png'   ];

  • Node.js中文件操作模块File System的详细介绍

    File System的缩写是fs,该模块提供本地文件的读写能力. Nodejs导入文件系统模块(fs)语法如下所示: var fs = require("fs"); 异步和同步 Node.js文件系统(fs模块)模块中的方法均有异步和同步版本,例如读取文件内容的函数有异步的fs.readFile()和同步的fs.readFileSync() . 异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error).同步则没有回调函数. 建议大家是用异步方法,比起同步

  • Node.js文件操作详解

    Node有一组数据流API,可以像处理网络流那样处理文件,用起来很方便,但是它只允许顺序处理文件,不能随机读写文件.因此,需要使用一些更底层的文件系统操作. 本章覆盖了文件处理的基础知识,包括如何打开文件,读取文件某一部分,写数据,以及关闭文件. Node的很多文件API几乎是UNIX(POSIX)中对应文件API 的翻版,比如使用文件描述符的方式,就像UNIX里一样,文件描述符在Node里也是一个整型数字,代表一个实体在进程文件描述符表里的索引. 有3个特殊的文件描述符--1,2和3.他们分别

  • nodeJS删除文件方法示例

    本文实例讲述了nodeJS删除文件方法.分享给大家供大家参考,具体如下: var fs = require("fs"); var path = require("path"); deleteFolderRecursive = function(url) { var files = []; //判断给定的路径是否存在 if( fs.existsSync(url) ) { //返回文件和子目录的数组 files = fs.readdirSync(url); files.

  • Node.js的文件权限及读写flag详解

    一.文件权限的数字类型 用数字来代表各个权限,各权限的分数对照表如下: r: 4 w: 2 x: 1 文件的基本权限有9个,分别是owner.group.others三种身份各有自己的read.write.execute权限.例如文件的权限字符为"-rwxrwxrwx"这9个权限是三个三个一组的.每种身份(owner.group.others)各自的权限(r.w.x)分数是需要累加的. 例如,当权限为[-rwxrwx-]时,分数则是: owner = rwx = 4 + 2 + 1 =

随机推荐