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

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


一直想对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

####处理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);


相关文章
|
2月前
|
数据采集 存储 JSON
利用Node.js实现拉勾网数据爬取
利用Node.js实现拉勾网案数据爬取
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
35 0
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(上)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
33 0
|
17天前
|
JavaScript
Node.js GET/POST请求
Node.js GET/POST请求
11 1
|
4天前
|
Web App开发 JavaScript 前端开发
一文搞懂:使用nodejs爬取和讯网高管增减持数据
一文搞懂:使用nodejs爬取和讯网高管增减持数据
|
13天前
|
数据采集 存储 JavaScript
深入Node.js:实现网易云音乐数据自动化抓取
深入Node.js:实现网易云音乐数据自动化抓取
|
2月前
|
存储 缓存 负载均衡
Node.js中间层如何处理并发请求以提供高性能和可扩展性
Node.js中间层如何处理并发请求以提供高性能和可扩展性
|
2月前
|
JSON JavaScript 中间件
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP get 请求
|
2月前
|
JSON JavaScript API
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
使用 Node.js 开发一个简单的 web 服务器响应 HTTP post 请求
|
2月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)(下)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
35 0