安装

NodeJs

Node.js was installed at

   /usr/local/bin/node

npm was installed at

   /usr/local/bin/npm

Make sure that /usr/local/bin is in your $PATH.

1.windows

在 Windows 上安装 Node.js 十分方便,你只需要访问http://nodejs.org,点 Download 接, 后 Windows Installer,下载安装包。下载完成后打开安装包,点 Next 可自动完成安装。

2.Linux

操作系统 安装命令
Debian/Ubuntu apt-get install nodejs
Fedora/RHEL/CenterOS/Scientific Linux yum install nodejs
openSUSE zypper install nodejs
Arch Linux pacman -S nodejs

点击 参阅链接

3.Mac OS X

Node.js 官方专门提供了 Mac OS X 的安装包,你可以在 http://nodejs.org 找到Download,然后 Macintosh Installer,下载安装包 。根据提示安装。

安装Node包管理器

curl http://npmjs.org/install.sh | sh

如果安装过程中出现了问题,那么需要在 root 下执行上面的语句,或者使用sudo。

curl http://npmjs.org/install.sh | sudo sh

安装多版本管理器 可能需要sudo权限

npm install -g n

npm安装依赖包 可能需要sudo权限

npm install -g [pkg_name] # -g 全局
npm install [pkg_name] # 局部
npm install [pkg_name] --save[-dev] #自动生成package.json文件

升级 npm

npm install -g npm

运行代码
安装完成,编写node代码 在终端中执行

node app.js

监视代码改动,并实时重启

npm install -g supervisor

安装完成后,运行代码方法:

supervisor app.js  //[app 为脚本名称]

创建模块

NodeJs中一个文件就可以当作一个模块,用require()可以加载模块。
exports是一个公开的接口对象,它是一个空对象{},专门用来声明接口。
自定义的模块需要赋给这个对象,使用module.exports用完不会立即释放exports对象用完会立即释放,故此一般都会赋值给module.exports


创建项目

安装express模块

sudo npm i -g express

sudo npm install -g express-generator

输入命令创建一个名为”microblog”的空项目,-e参数代表使用的ejs模板,如果想用jade的话请使用-t

express microblog

express -e microblog

express -t microblog

cd到”microblog”目录下,执行命令,安装项目依赖。

npm install

模块

  • url模块
    对获取的url进行操作,如解析为对象,格式化等

    var url = require('url');
  • http模块
    建立对http的一些操作,详细操作见文档
    HTTP客户端发起请求,创建端口
    HTTP服务器在端口监听客户端请求
    HTTP服务器向客户端返回状态和内容

HTTP
当我们发起一个http请求的时候,具体的请求过程

  1. 浏览器会搜索自身的DNS缓存(ip地址)
  2. 搜索操作系统自身的DNS缓存(浏览器没有找到自身的缓存或缓存失效)
  3. 读取本地host文件
  4. 浏览器发起一个DNS的系统调用

    运营商

    1> 宽带运营商服务器查看自身缓存
    2> 运营商发送一个迭代DNS解析的请求
    运营商服务器把ip结果返回给操作系统内核同时缓存起来
    操作系统把ip结果返回给浏览器
    最终浏览器拿到请求地址对应的ip地址

  5. 浏览器获得域名对应的ip地址后,发起HTTP的“三次握手”(TCP链接请求,进入服务器网卡的TCP/IP协议栈)

    客户端向服务端询问是否可访问
    服务端返回可访问
    客户端与服务端开始通信

  6. TCP/IP链接建立起来后,浏览器就可以向服务器发送http请求使用了,比如:用http的get方法请求一个根域里的一个域名,协议可以采用http1.0的一个协议。
  7. 服务器端接收到这个请求,根据路径参数,经过后端的处理,把处理后的结果返回给浏览器。
  8. 浏览器拿到请求结果后展现给用户(静态资源也是一个个的http请求)
graph LR
请求-->http头信息和正文
http头信息和正文-->响应
响应-->http头信息和正文
http头信息和正文-->请求

引用http模块

var http = require('http');
  • querystring模块
    对请求参数的一些操作,如序列化,反序列化,定义拼接字符串等
    var http = require('querystring');
  • apache ab 测试
    ab -n1000 -c10 http://baidu.com
    -n1000 #总请求数1000 默认值1
    -c10 #并发数10  默认值1
    -t #测试的时间
    -p #post数据文件
    -w #以html表格格式输出为结果
文档更新时间: 2019-11-19 15:14   作者:Maple