Node.js 与 NPM 笔记

参考链接:http://www.runoob.com/nodejs/nodejs-tutorial.html

Node.js 基础教程

安装 node.js

安装完成后,打开命令行执行 node -v,会显示 node.js 版本号,若无此命令,则需配置 node.js 安装目录路径到环境变量,重新启动电脑重试。

运行 .js 文件

  1. 新建目录 test,在此目录下新建 js 文件 hello.js,编辑内容:console.log('hello world');,保存后关闭。
  2. 在此目录运行命令窗口(Shift+鼠标右击->在此处打开命令窗口),执行命令node hello.js,之后观察运行结果。

Node.js模块系统

为了让 Node.js 文件可以相互调用,Node.js 提供了一个简单的模块系统。

模块是 Node.js 应用程序的基本组成部分,文件和模块是一一对应的。换言之,一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的 C/C++ 扩展。

Node.js 中自带 http 的模块,我们在代码中请求它并把返回值赋给一个本地变量,
这就把它变成了一个拥有所有 http 模块所提供的公共方法的对象。

Node.js 的 require 方法中的文件查找策略如下:
由于 Node.js 中存在 4 类模块(原生模块和3种文件模块),尽管 require 方法极其简单,但是内部的加载却是十分复杂的,其加载优先级也各自不同。

从文件模块缓存加载:尽管原生模块与文件模块的优先级不同,但是都会优先从文件模块的缓存中加载已经存在的模块。

从原生模块加载:原生模块的优先级仅次于文件模块缓存的优先级。require 方法在解析文件名之后,优先检查模块是否在原生模块列表中。以 http 模块为例,尽管在目录下存在一个 http/http.js/http.node/http.json 文件,require(“http”) 都不会从这些文件中加载,而是从原生模块中加载。
原生模块也有一个缓存区,同样也是优先从缓存区加载。如果缓存区没有被加载过,则调用原生模块的加载方式进行加载和执行。

从文件加载:当文件模块缓存中不存在,而且不是原生模块的时候,Node.js 会解析 require 方法传入的参数,并从文件系统中加载实际的文件。

require方法接受以下几种参数的传递:
- http、fs、path等,原生模块。
- ./mod 或 ../mod,相对路径的文件模块。
- /pathtomodule/mod,绝对路径的文件模块。
- mod,非原生模块的文件模块。

NPM 教程

npm是随同 NodeJS 一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用;
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用;
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用;
- 新版的 nodejs 已经集成了 npm。执行 npm -v 测试是否成功安装。

安装 nodejs 后用node -v查看版本号,若出现如下异常,

socket: (10106) 无法加载或初始化请求的服务提供程序

运行“netsh winsock reset”可以解决此问题。

设置国内镜像

$ npm config set registry https://registry.npm.taobao.org --global 
$ npm config set disturl https://npm.taobao.org/dist --global

或安装cnpm(使用国内镜像的):

$ npm install cnpm -g --registry=https://registry.npm.taobao.org

安装完成后运行cnpm -v查看版本号。之后可用 cnpm 代替 npm。

猜你喜欢

转载自blog.csdn.net/petezh/article/details/81456770