一、Node.js简单介绍
Node.js 就是运行在服务端的 JavaScript
在node环境下,通过模块化js语言,以及函数式编程,并且无需考虑服务器兼容性问题,直接用最新的ES6标准,可以完全满足工程上的需求。
1.应用场景:
- 实时性应用 :如在线多人协作工具,网页聊天应用
- 以I/O为主的高并发应用 :如客户端提供API,读取数据库
- 流式应用 :如客户端频繁上传文件
- 前后端分离
2.Node.js应用的组成
-
引入 required 模块
:使用 require 指令来载入 Node.js 模块。 -
创建服务器
:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。 -
接收请求与响应请求
: 客户端可以使用浏览器或终端发送 HTTP 请求,服务器接收请求后返回响应数据。
创建一个node.js应用:
- 引入 required 模块
使用require
指令来载入 http 模块,并将实例化的 HTTP 赋值给变量 http
var http = require('http');
- 创建服务器
使用 http.createServer()
方法创建服务器,并使用listen()
方法绑定 8888 端口进行事件监听。 函数通过 request, response
参数来接收和响应数据。
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文件
node server.js
//以下为运行结果
Server running at http://127.0.0.1:8888/
4. 打开浏览器访问 http://127.0.0.1:8888/,你会看到一个写着 "Hello World"的网页。
二、npm使用方法
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
- 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
- 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
- 检查npm是否安装
$ npm -v
- npm升级
npm install npm -g
- 使用npm安装模块
$ npm install <Module Name>
举例:$ npm install express (安装express模块)
安装好之后,express 包就放在了工程目录下的 node_modules 目录中,然后使用require(‘express’)引入即可
var express = require('express');
- 本地安装和全局安装
npm install express (本地安装)
npm install express -g (全局安装)
- 更新模块(以下都以express模块为例)
$ npm update express
- 搜索模块
$ npm search express
- 卸载模块
$ npm uninstall express
三、REPL(交互式解释器)
read-eval-print-loop
--> 读取-求值-输出-循环 ,可以在终端中输入命令,并接收系统的响应。
- 如进行简单的表达式运算…
> 1+4
5
> 5/2
2.5
> x=10
10
> var y=5
undefined
> x+y
15
特殊符号 ‘_
’,可表示上一次运行的结果:
> x=10
10
> y=5
5
> x+y
15
> var sum=3+_
undefined
> console.log(sum)
18
undefined
- REPL 常用指令
指令 | 解释 |
---|---|
ctrl + c | 退出当前终端。 |
ctrl + c 按下两次 | 退出 Node REPL。 |
ctrl + d | 退出 Node REPL. |
向上/向下 键 | 查看输入的历史命令 |
tab 键 | 列出当前命令 |
.help | 列出使用命令 |
.break | 退出多行表达式 |
.clear | 退出多行表达式 |
.save filename | 保存当前的 Node REPL 会话到指定文件 |
.load filename | 载入当前 Node REPL 会话的文件内容。 |