1.Nodejs简介 - http://nodejs.cn/api/
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,是全球最大的开源库生态系统。
2.COMMONJS模块化规范(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路由搭建(前端路由、服务器路由)