美文网首页
NodeJS 学习笔记

NodeJS 学习笔记

作者: 止风者 | 来源:发表于2016-05-26 22:06 被阅读0次

NodeJS
使用 CommonJS 模块系统。
整个项目都是由一个个模块组成的,模块的存在形式是文件,他们一一对应。
模块中,通过exports来输出函数、变量和对象,供调用者使用。
通过require() 来加载各模块。

require

语法 解释 举例
require('http') 内置模块,核心模块,原生模块,核心模块在 Node 源代码的 lib/ 文件夹中定义
require('/home/marco/foo.js') 绝对路径,如果没有找到确切的文件(比如没有后缀的文件),Node 将尝试给所需的文件名​​添加 .js 后缀再加载,然后再尝试 .node。.js 文件被视为 JavaScript 文本文件,而 .node 文件被视为已编译的插件模块,用 dlopen 加载。
require('./server') “./”表示当前路径,后面跟的是相对路径。对目录的加载,细节请看下面专门介绍
require("../lib/server") ../表示上一级目录,后面跟的也是相对路径

文件模块

Node 有一个简单的模块加载系统。在 Node 中,文件和模块一一对应。
如果没有找到确切的文件,Node 将尝试给所需的文件名​​添加 .js 后缀再加载,然后再尝试 .node。
.js 文件被视为 JavaScript 文本文件,而 .node 文件被视为已编译的插件模块,用 dlopen 加载。
模块以 '/' 开头表示使用文件的绝对路径。
模块以 './' 开头表示调用 require() 时使用相对路径。
如果不以 '/' 或'./' 开头,该模块可以是一个“核心模块”,也可是一个从 node_modules 文件夹中加载的模块。
如果传递给 require() 有模块标识符是不是原生模块,而且不以 '/'、'../' 或'./' 开头,那么 Node 从当前模块的父目录+/node_modules 这个位置尝试加载。
如果还是没有找到,那么它跳到上层目录并依此类推,直到找到模块,或者达到根目录为止。

以文件夹作为模块

Node 允许用户在独立的目录中方便地组织程序,然后提供单一入口指向该库。有三种方式可以将文件夹作为 require() 的参数。
第一种方式是在该文件夹中创建 package.json 文件,指定一个 main 模块。一个典型的 package.json 文件可能看起来像这样:
{ "name" : "some-library",
"main" : "./lib/some-library.js" }
如果此文件位于 ./some-library 文件夹,则 require('./some-library') 会尝试加载 ./some-library/lib/some-library.js。
这是 Node 能找到 package.json 文件的情况。
如果在该目录中没有 package.json 文件,那么 Node 将尝试加载该目录中的 index.js 或 index.node 文件。例如,如果上面的例子找不到 package.json,那么 require('./some-library') 将试图加载:
./some-library/index.js
./some-library/index.node

require.resolve()

在Node.js中,可以使用require.resolve函数来查询某个模块文件的带有完整绝对路径的文件名,代码如下所示。
require.resolve('./testModule.js');
在这行代码中,我们使用require.resolve函数来查询当前目录下testModule.js模块文件的带有完整绝对路径的模块文件名。
注意:使用require.resolve函数查询模块文件名时并不会加载该模块。

建议

一个可以工作的建议的目录结构:
比方说,我们希望 /usr/lib/node/<some-package>/<some-version> 文件夹中包含某个包的特定版本的内容。然后在 node_modules 文件夹用上文描述的方式查找依赖。

ng-repeat数组有重复值的处理方法

<li ng-repeat="item in items track by $index">{{ item }}</li>

相关文章

  • 2018-08-21nodejs

    Nodejs学习笔记 一、 NodeJs介绍 什么是NodeJS,在应用程开发中起什么作用? Nodejs是一个应...

  • Nodejs学习笔记-Nodejs介绍

    什么是Node.js 编写高性能网络服务器的JavaScript工具包(用js开发服务端程序)单线程、异步、事件驱...

  • nodejs学习笔记

    JavaScript模块编译 在编译过程中,node对获取的JavaScript文件内容进行了头尾包装。正常的Ja...

  • nodejs学习笔记

    模块 名词解释:每一个js文件就是一个模块,而文件路径就是模块名。每个模块(也就是每个js文件)都有requir,...

  • Nodejs学习笔记②

    写在前面 这次做一个小小的登陆&注销登陆功能练习下所学的知识,并扩充些新知识。 目录 新建 login 项目 下载...

  • Nodejs学习笔记①

    写在前面 undefined 目录 检查更新node&npm版本 安装Express 4.x Express 4....

  • nodejs学习笔记

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个...

  • Nodejs学习笔记

    Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。nodejs由以下模块组成:引...

  • NodeJS 学习笔记

    NodeJS使用 CommonJS 模块系统。整个项目都是由一个个模块组成的,模块的存在形式是文件,他们一一对应。...

  • Nodejs学习笔记

    以前学习C、OC、Swift、H5的时候都没有留下痕迹,心里甚是遗憾,最近用Nodejs参与了一个web开发,果断...

网友评论

      本文标题:NodeJS 学习笔记

      本文链接:https://www.haomeiwen.com/subject/cuhxdttx.html