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

⭐️ 本文首发自 前端修罗场(点击加入),是一个由 资深开发者 独立运行 的专业技术社区,我专注 Web 技术、Web3、区块链、答疑解惑、面试辅导以及职业发展博主创作的 《前端面试复习笔记》(点击订阅),广受好评,已帮助多人提升实力、拿到 offer。现在订阅,私聊我即可获取一次免费的模拟面试机会,帮你评估知识点的掌握程度,获得更全面的学习指导意见!
一直想对NodeJS做个归纳总结,把里面的常用的知识点进行一个阐述,下面是我对NodeJS中涉及常用的东西做的一个分享。

NodeJS 归纳篇(一)数据请求

  • 模块、自定义
  • 框架express\koa\es6
  • 应用

优势:

  • 性能
    与PHP比较:

  • PHP 200台 400万

  • nodeJS 3台 6W

  • 跟前台JS配合方便

fs文件系统

方法

  • fs.readFile()//readFile(文件名,回调函数) 异步操作
  • fs.writeFile()//writeFile(文件名,内容,回调函数)

eg

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方式

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 模块

const querystring = require('querystring');

var json = querystring.parse("user=blue&pass=12345&age=19");

console.log(json);

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 模块

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);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程轨迹_

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值