什么是node.js
编写高性能网络服务器的JavaScript工具包(用js开发服务端程序)
单线程(轮询) 异步 事件驱动
特点:快 耗内存多
异步消耗内存测试:网上一个百万级并发测试,未优化的情况下1M的连接消耗了16G的内存
Node.js vs php
优点:性能高(机制问题) 开发效率高(省不少优化的事) 应用范围广(可以开发桌面系统、electron框架)
缺点:新、人少 中间件少 IDE不完善orm
Node.js的劣势和解决方案
默认不支持多核,但用cluster可以解决
默认不支持服务器集群,node-http-proxy可以解决
使用nginx做负载均衡,静态的由nginx处理,动态的由node.js处理
Forever或node-cluster实现灾难恢复
框架选择
比较热门的:express、kos、Hapi以及express基础上的sails
express:完善、稳定、文档全、社区大
koa:超前、正在完善中
Hapi:复杂(一个简单的hello,world都要做很多堆砌)适合复杂的大型项目
学习路径
node.js基础
express框架
sails框架
项目:sails+vue.js sails+react
编辑器(IDE):
记事本(Editplus)
Webstorm
Atom或sublime
多看文档
摸索测试
Hello,world
var http = require('http');//导入http
http.createServer(function(request,response){//创建一个服务 请求、响应
response.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});//http协议头,编码格式
if(request.url!="/favicon.ico"){//清除第二次访问
console.log('访问');
response.write('hello,world');//书写内容
response.end('你好,世界');//不写没有http协议尾,写了会有2次访问
}
}).listen(8000);//监听8000端口
console.log('Server running at http://192.168.0.1:8000');