NodeJs及路由

http://nodejs.cn/api/

Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。

Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。

Node.js 的包管理器 npm,是全球最大的开源库生态系统。

http://www.commonjs.org/)

CommonJS是一种规范,NodeJS是这种规范的实现。

一个文件就是一个模块。

CommonJS模块规范主要分为三部分:模块定义、模块引用、模块标识

2.1模块定义-export

export是module.exports的一个引用。

2.2模块引用-require

2.3模块标识:

模块标识指的是传递给require方法的参数,必须是符合小驼峰命名的字符串,或者以 ./ 、.. /、开

头的相对路径,或者绝对路径。

requireJS --AMD 参考commonjs规范

es6module 参考commonjs规范

3.npm , nrm,nvm工具使用;

npm(Node.js自带的包管理工具)

npm为你和你的团队打开了连接整个 JavaScript 天才世界的一扇大门。它是世界上最大的软件注册表。

npm info [package] 查看当前package 的版本信息

npm view [package] versions 查看npm下面package 所有的版本

npm update [package] 更新模块

npm uninstall [package] 卸载模块

npm install [package] 安装模块

npm国外的服务器,安装过程中有可能因为网络问题产生丢包,可以采用cnpm进行安装

cnpm install:淘宝镜https://blog.csdn.net/quuqu/article/details/64121812

Dos 下面按照顺序将下面的三句命令复制执行。

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

npm config get registry

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

npm cache clean -f :清除npm的缓冲

yarn(软件安装)--facebook

https://yarnpkg.com/lang/zh-hans/docs/install/#windows-stable (下载yarn)

https://yarnpkg.com/zh-Hans/docs/cli/ (yarn的常用命令)

yarn init:初始化项目;

yarn install:安装package.json 文件里定义的所有依赖包;

yarn global add [package] : 安装全局模块(包)。

yarn add [package] --dev 安装依赖的模块(包)

yarn remove [package]:卸载模块(包)。

yarn global remove [package]:卸载全局的包

tyarn安装:是国内淘宝的镜像

npm install yarn tyarn -g

nrm(npm registry manager )是npm的镜像源管理工具,有时候国外资源太慢,那么我们可以用这个来切换镜像源。

首先全局安装 nrm npm install -g nrm

列出可用的源:nrm ls 使用哪个源:nrm use taobao

删除电脑的所有的node版本,重新利用nvm进行安装。

nvm是一个可以让你在同一台机器上安装和切换不同版本node的工具,nvm 的官方版本只支持Linux 和 Mac。 Windows 用户,可以用nvm-windows。

https://www.cnblogs.com/hamsterPP/p/8076131.html

配置淘宝源,让npm安装速度更快。

打开nvm安装的根目录“settings.txt”文件,在最后面追加下面两行:

node_mirror: https://npm.taobao.org/mirrors/node/

npm_mirror: https://npm.taobao.org/mirrors/npm/

nvm list available 列出node的所有版本。

nodemon 测试工具使用:直接监听js文件

Nodemon 是一款非常实用的工具,用来监控你 node.js 源代码的任何变化和自动重启你的服务器。

Nodemon 是一款完美的开发工具.

npm install -g nodemon

4.自定义模块/内置模块/第三方模块

自定义模块:根据commonjs自定义的模块

内置模块:Node.js自带的

第三方模块:需要安装引入的npm模块--npm里面

5.内置模块 http , fs , path 根据需求进行讲解

5.1http模块:是用于创建一个能够处理和响应 http 响应的服务

req:request 请求对象

res:response 响应对象

获取请求信息

require.url 获取请求路径

request.httpVersion 获取协议的版本

request.method 获取请求的方式(get post)

request.headers 获取请求头

设置响应信息

response.setHeader() 设置响应头

response.writeHead() 设置响应头

response.write() 设置响应信息

response.end() 响应结束

http.createServer创建一个web服务器

http.request获取数据接口

5.2Filesystem(fs模块):用于对系统文件及目录进行读写操作。

得到文件与目录信息:stat

创建一个目录:mkdir

创建文件并写入内容:writeFile(创建并写入内容),appendFile(写入)

读取文件的内容:readFile--(toString())

列出目录的内容:readdir--数组

删除目录或文件:rmdir(删除目录),unlink(删除文件)

5.3path模块:提供了一些用于处理文件路径的小工具

path.join(__dirname,'fileurl') 方法使用平台特定的分隔符把全部给定的 path 片段连接到一起,并规范化生成的路径。

5.4Url模块:帮助我们对提交上来的url进行解析处理

url.parse(url)--将一个URL字符串转换成对象并返回。

url.format(obj)--parse逆运算。

6.路由

Nodejs路由搭建--前端路由

Nodejs路由搭建--服务器路由

单页Web应用(single page web application,SPA),就是只有一张Web页面的应用,是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。

浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。因此,对单页应用来说模块化的开发和设计显得相当重要。

事件:hashchange / location.hash

当URL的片段标识符更改时,将触发hashchange事件(跟在#符号后面的URL部分,包括#符号)

hashchange事件触发时,事件对象会有hash改变前的URL(oldURL)和hash改变后的 URL(newURL)两个属性。

路由实现原理:hash哈希值

7.强化练习

1.使用npm下载外部模块 https://www.npmjs.com/

2.Nodejs, http服务搭建

3.Nodejs路由搭建(前端路由、服务器路由)