一、什么是NodeJS
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。
Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。
Node.js 的包管理器 npm,成为世界上最大的开放源代码的生态系统。
淘宝镜像网站:http://npm.taobao.org/
npm install -g cnpm --registry=https://registry.npm.taobao.org
二、NodeJS怎样
Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API,如:
文件的读写
进程的管理
网络通信
......
三、为什么要学习NodeJs
列举一些基于Node的工具或者框架
Node-Webkit:基于node的webkit的内核
NodeOS:基于node的操作系统
Express:基于node的框架
Jade:模板
EJS:模板
Forever:负载均衡
PM2:负载均衡
Log.io:浏览器打印各种输出日志,报错等
Grunt、Gulp、Webpack:前端工程化工具
Mocha、Karma:前端测试工具
......
四、学习nodeJS的五个网站
node官网:https://nodejs.org/en/ -------下载node,官方API,更新日志,发布的动态
npm官网:https://www.npmjs.com/search?q= -------可以搜索你需要的模块,模块管理、组件安装
github:https://github.com/search?utf8=%E2%9C%93&q=nodejs ----源代码
国外技术博客:http://stackoverflow.com/questions -----使用nodejs遇到的问题
国内的技术博客:https://segmentfault.com/ -----遇到的问题
五、nodeJS的安装
Mac系统的安装
windows系统的安装
其他系统的安装
参照网址:http://www.runoob.com/nodejs/nodejs-install-setup.html
v6.9.5 LTS v7.5.0 Current
偶数位为稳定版本:v6.8.x v6.6.x v6.4.x
基数位为非稳定版本:v6.9.x v6.7.x v6.5.x
六、搭建第一个WEB服务器
查看端口被占用 8080
win+R打开命令行窗口,
netstat -ano|findstr "8080"
在任务管理器中消除掉即可
本地创建一个文件server.js,代码采用es6编写
const http = require("http");
const homename = "127.0.0.1";
const port = 3000;
const server = http.createServer((req,res)=>{
res.statusCode = 200;
res.setHeader("Content-Type","text/plain");
res.end("hello world");
});
server.listen(port,hostname,()=>{
console.log(server running at http://${hostname}:${port}/
);
})
es5的编写方法
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即可进入控制台---交互式解释器--Node.js REPL
表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。
Node 自带了交互式解释器,可以执行以下任务:
读取 - 读取用户输入,解析输入了Javascript 数据结构并存储在内存中。
执行 - 执行输入的数据结构
打印 - 输出结果
循环 - 循环操作以上步骤直到用户两次按下 ctrl-c 按钮退出。
八、helloworld
创建一个文件hello.js,代码采用es5编写
//console.log("hello world");
启动一个服务器
"/favicon.ico"
打印两次helloworld
九、模块和包管理工具
commonJS规范
根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。
依赖关系 定义 .js文件
命名空间 纠结的编程体验 暴露接口
代码组织 引用
modules/pakages/system/filestems/binary/console/encodings/sockets/unit test...
不同于jQuery,CommonJs是一套规范
规范与实现的互为促进
nodeJS、Webpack都基于CommonJS规范,区别于AMD/CMD---require.js/sea.js
使用npm install 来安装模块
使用镜像安装 cnpm install
案例展现
十、NPM使用
全局安装:相当于windows系统环境变量的配置
本地安装:不加后缀
安装:install
卸载:uninstall
安装模块:npm install n -g
升级node:n stable
安装Forever:cnpm install forever -g
本地安装underscore:cnpm install underscore
查看模块版本号:cnpm info underscore
选择版本安装:cnpm install underscore@1.0.3
查看安装了那些模块:cnpm list
如何管理模块package:cnpm init
dependencies:项目依赖,通过--save加进去
devDependencies:开发依赖,线上不需要---通过--dev加进去
删除node_modules文件夹,执行命令 cnpm install
只查看安装模块的中某一个模块的信息:cnpm list | grep gulp
查看版本标识:cnpm outdated
nrm模块--选择和切入源:cnpm install nrm -g
nrm list
nrm test----测试速度
nrm use npm