【NodeJS】归纳篇(一)数据请求

2023-10-07 17:22:51 浏览数 (1)

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数据很大,需要分段传输
代码语言:javascript复制
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);

0 人点赞