- 基于Chrome V8引擎
- 单线程
- 使用JavaScript开发后端代码
- 非阻塞的IO
common规范
common一定是通过module.exports={}输出
创建Http Server
node demo.js
//文件demo.js
let http=require('http');//调用http模块
let url=require('url');//请求头
let util=require('util');
let server=http.createServer((req,res)=>{
res.statusCode=200;//返回状态码
res.setHeader("Content-Type","text/plain;charset=utf-8");//服务器响应头
console.log(req.url);// /demo.html?a=123 不包含hash
console.log(url.parse(req.url));//把url转换为对象
console.log(util.inspect(url.parse(req.url)))//把对象转换为字符串
res.end('hello,node.js');//响应结束输出
})
server.listen(8081,'127.0.0.1',()=>{
console.log('服务器已运行')
})
加载静态页面
http://localhost:8081/login.html node sever.js
//文件sever.js
let http=require('http');//调用http模块
let url=require('url');//请求头
let util=require('util');
let fs=require('fs');//文件系统
let server=http.createServer((req,res)=>{
var pathname=url.parse(req.url).pathname;
fs.readFile(pathname.substring(1),function(err,data){//读取文件,pathname.substring(1)去掉路径前的'/'
if(err){
res.writeHead(404,{
"Content-Type":"text/html"
});
}else{
res.writeHead(200,{
"Content-Type":"text/html"
});
res.write(data.toString());
}
res.end();//响应结束,要放在读取文件的内部
});
})
server.listen(8081,'127.0.0.1',()=>{
console.log('服务器已运行')
})
调用第三方接口
let http = require('http'); //调用http模块
let util=require('util');
http.get('http://www.imooc.com/index/getstarlist', res => {
let data = '';
res.on('data', chunk => {//监听
data += chunk;
});
res.on('end', () => {
let result = JSON.parse(data);
console.log(util.inspect(result));
});
})
Express框架
cnpm i -g express-generator
安装express generator
express --version
检查版本
express server
生成默认项目,在server文件夹内
bin 可执行文件
public 静态资源
routes 路由
views 视图
app.js 入口
node server/bin/www 访问
用webStorm启动
运行 -> 编辑结构 -> +(新添配置) -> js file:"serverinwww"
pm2 插件启动
$ npm install pm2 -g
$ pm2 start app.js
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">