NodeJS 归纳篇(一)数据请求
- 模块、自定义
- 框架expresskoaes6
- 应用
优势:
- 性能 与PHP比较:
- PHP 200台 400万
- nodeJS 3台 6W
- 跟前台JS配合方便
fs文件系统
方法
- fs.readFile()//readFile(文件名,回调函数) 异步操作
- fs.writeFile()//writeFile(文件名,内容,回调函数)
eg
代码语言:javascript复制const http = require('http');
const fs = require('fs');
var server = http.createServer(function(req,res){
var file_name = './www' req.url;
fs.readFile(file_name,function(err,data){
if(err){
res.write('404');
}else {
res.write(data);
}
res.end(); //什么时候读取完文件,什么时候end
});
});
server.listen(8080);
接收前台数据请求
前台:请求方法
- 表单
- ajax
- jsonp
- webSocket
后台:无论前台什么请求方式,一样的处理方式。
前台<—http—>后台 对于后台,接收到的都是http 请求。
http请求方式:
- GET 数据在Url
- POST 数据不在Url
####b处理GET方式
代码语言:javascript复制const http = require('http');
var server = http.createServer(function(req,res){
console.log(req.url)
var GET= {};
if(req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
var arr2 = arr[1].split('&');
for(var i in arr2){
var arr3 = arr2[i].split('=');
GET[arr3[0]] = arr3[1];
}
}else {
var url = req.url;
}
console.log(GET);
});
server.listen(8080);
改进:QueryString 模块
代码语言:javascript复制const querystring = require('querystring');
var json = querystring.parse("user=blue&pass=12345&age=19");
console.log(json);
代码语言:javascript复制const http = require('http');
const querystring = require('querystring');
var server = http.createServer(function(req,res){
var GET= {};
if(req.url.indexOf('?')!=-1){
var arr = req.url.split('?');
var url = arr[0];
GET = querystring.parse(arr[1]);
}else {
var url = req.url;
}
console.log(GET);
res.write('aaa');
res.end();
});
server.listen(8080);
改进:url 模块
代码语言:javascript复制const http = require('http');
const urlLib = require('url');
var server = http.createServer(function(req,res){
var GET= {};
GET = urlLib.parse(req.url,true);
console.log(GET.pathname,GET.query);
res.write('aaa');
res.end();
});
server.listen(8080);
处理POST方式
- POST数据很大,需要分段传输
const http = require('http');
const querystring = require('querystring');
var server = http.createServer(function(req,res){
var str = '';//接收数据
//data :有一段数据到达就会发生一次
req.on('data',function(data){
str =data;
});
//end:数据全部到达才发生,只发生一次
req.on('end',function(){
var post = querystring.parse(str);
console.log(post);
});
});
server.listen(8080);