NodeJS 教程

安装

Windows : 官网下载后直接安装即可

下载地址: https://nodejs.org/en/download/

Mac

1
brew install node

NodeJS Hello World

新建一个server.js的文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// NodeJS使用require指令来载入http模块
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/');

然后终端输入:node server.js

npm

npm是NodeJS的包管理工具,类似Python的pip

查看npm版本:

1
2
$ npm -v
7.23.0

升级:

1
npm install npm -g

例如,使用npm安装常用的 Node.js web框架模块 express:

1
2
npm install express      # 本地安装
npm install express -g # 全局安装

本地安装

  1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
  2. 可以通过 require() 来引入本地安装的包。

全局安装

  1. 将安装包放在 /usr/local 下或者你 node 的安装目录。
  2. 可以直接在命令行里使用。

查看安装信息:

1
npm list -g

使用package.json

package.json 位于模块的目录下,用于定义包的属性。接下来让我们来看下 express 包的 package.json 文件,位于 node_modules/express/package.json 内容:

1
2
3
4
5
{
"dependencies": {
"express": "^4.17.1"
}
}

package.json属性说明

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

卸载模块

1
npm uninstall express

之后可以使用npm ls命令查看包是否已经卸载完成

更新模块

1
npm update express

搜索模块

1
npm search express

创建模块

使用npm init 命令来发布模块

1
npm init

输入提示的各项内容后生成了package.json文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
➜  node_sample cat package.json
{
"dependencies": {
"express": "^4.17.1"
},
"name": "geekhall",
"version": "1.0.0",
"description": "geekhall sample code",
"main": "app.js",
"devDependencies": {},
"scripts": {
"test": "gh"
},
"keywords": [
"geekhall"
],
"author": "yinyang",
"license": "ISC"
}

使用npm adduser来在npm资源库中注册用户

1
2
3
4
5
6
➜  node_sample npm adduser
npm notice Log in on https://registry.npm.taobao.org/
Username: yinyang
Password:
Email: (this IS public) yinyang007@gmail.com

然后我们就可以使用npm publish来发布模块了。

npm 常用命令

  • NPM提供了很多命令,例如install和publish,使用npm help可查看所有命令。
  • 使用npm help <command>可查看某条命令的详细帮助,例如npm help install。
  • 在package.json所在目录下使用npm install . -g可先在本地安装当前命令行程序,可用于发布前的本地测试。
  • 使用npm update <package>可以把当前目录下node_modules子目录里边的对应模块更新至最新版本。
  • 使用npm update <package> -g可以把全局安装的对应命令行程序更新至最新版。
  • 使用npm cache clear可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。
  • 使用npm unpublish <package>@<version>可以撤销发布自己发布过的某个版本代码。

使用淘宝npm镜像

使用以下命令来使用淘宝的cnpm

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

REPL(交互式解释器)

Node自带了交互式解释器,输入node即可,可以执行读取、执行、循环等功能