一、基本命令

1.1 Node.js 常用命令

1.1.1 查看node版本

node --version

或者

node -v

1.1.2 脚本执行

node xxx.js

1.2 npm 常用命令

1.2.1 查看npm 版本

npm -v

1.2.2 安装express模块

npm install express

1.2.3 全局安装express模块

npm install -g express

1.2.4 列出已安装模块

npm list

1.2.5 显示express模块详情

npm show express

1.2.6 升级当前目录下的项目的所有模块

npm update

1.2.7 升级当前目录下的项目的指定模块

npm update express

1.2.8 升级全局安装的express模块

npm update -g express

1.2.9 删除指定的模块

npm uninstall express

1.2.10 更新node版本

首先需要确保是否安装 n 模块,这个是node升级需要
没有安装执行:npm i n -g -f
检测使用: n --version
更新node命令:n stable

1.2.11 node 引入模块

var http = require("express")

1.2.12 修改 下载仓库为淘宝镜像

npm config set registry http://registry.npm.taobao.org/

注意:如果要发布自己的镜像需要修改回来

npm config set registry https://registry.npmjs.org/

1.2.13 查看下载仓库

npm config get registry

二、Node.js 创建第一个应用

2.1 Node.js 应用是由哪几部分组成?

1.引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
2.创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
3.接收请求与响应请求:服务器很容易创建,客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。

2.2 创建 Node.js 应用

2.2.1 引入 required 模块

1
var http = require('http');

2.2.2 创建服务器

接下来我们使用 http.createServer() 方法创建服务器,并使用 listen 方法绑定 8888 端口。 函数通过 request, response 参数来接收和响应数据。

实例如下,在你项目的根目录下创建一个叫 server.js 的文件,并写入以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var http = require('http');

http.createServer(function (request, response) {

// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});

// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8888);

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8888/');

2.2.3 测试

以上代码我们完成了一个可以工作的 HTTP 服务器。

使用 node 命令执行以上的代码:

node server.js

这里我们直接在webstorm中运行并测试:

2.2.4 代码分析

第一行请求(require)Node.js 自带的 http 模块,并且把它赋值给 http 变量。

接下来我们调用 http 模块提供的函数: createServer 。这个函数会返回 一个对象,这个对象有一个叫做 listen 的方法,这个方法有一个数值参数, 指定这个 HTTP 服务器监听的端口号。

三、NPM 使用介绍

3.1 使用场景

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  1. 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  2. 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  3. 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

3.2 使用 package.json

package.json 位于模块的目录下,用于定义包的属性。

3.2.1 Package.json 属性说明

属性含义
name包名
version包的版本号
description包的描述
homepage包的官网 url
author包的作者姓名
contributors包的其他贡献者姓名
dependencies依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
repository包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
mainmain 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
keywords关键字

3.2.2 搜索模块

npm search express

3.2.3 创建模块

创建模块,package.json 文件是必不可少的。我们可以使用 NPM 生成 package.json 文件,生成的文件包含了基本的结果。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Microsoft Windows [版本 10.0.18362.1082]
(c) 2019 Microsoft Corporation。保留所有权利。
E:\workspace\workspace(nodejs)\day01>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help init` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (day01) test
version: (1.0.0) 1.0.0
description: 测试模块
entry point: (server.js)
{
"name": "test",
"version": "1.0.0",
"description": "测试模块",
"main": "server.js",
"scripts": {
"test": "make test",
"start": "node server.js"
},
"keywords": [
"test",
"make"
],
"author": "wno704",
"license": "ISC"
}


Is this OK? (yes) yes

E:\workspace\workspace(nodejs)\day01>

以上的信息,你需要根据你自己的情况输入。在最后输入 "yes" 后会生成 package.json 文件。

接下来我们可以使用以下命令在 npm 资源库中注册用户(使用邮箱注册):

$ npm adduser
Username: wno704
Password:
Email: (this IS public) wno704@126.com

接下来我们就用以下命令来发布模块:

npm publish

如果你以上的步骤都操作正确,你就可以跟其他模块一样使用 npm 来安装。

注意: 如果你遇到了使用 npm 安 装node_modules 总是提示报错:报错: npm resource busy or locked.....。可以先删除以前安装的 node_modules :

npm cache clean
npm install

3.3 使用淘宝 NPM 镜像

大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

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

这样就可以使用 cnpm 命令来安装模块了:

cnpm install [name]

更多信息可以查阅: http://npm.taobao.org/

3.4 版本号

使用NPM下载和发布代码时都会接触到版本号。NPM使用语义版本号来管理代码,这里简单介绍一下。

语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。

如果只是修复bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大变动,向下不兼容,需要更新X位。

版本号有了这个保证后,在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范围的版本号。例如"argv": "0.0.x"表示依赖于0.0.x系列的最新版argv。

NPM支持的所有版本号范围指定方式可以查看官方文档。