Node.js(基础知识三)


GET

对于GET请求,由于所指定想要获取的资源的URL是完整的,因此可以在创建了服务器之后,在回调函数的request参数里,用url和querystring模块提取出客户端的请求参数,即Url中pathname和?之后的内容,然后根据这些信息去做响应的操作和响应。

eg:

var http = require('http');
var url = require('url');
var util = require('util');

http.createServer(function(request, response){
    response.writeHead(200, {'Content-Type': 'text/plain'});

    var params = url.parse(request.url, true).query;
    //if  params 中的name或者url为。。。时,可以做不同对应的操作
    response.write(params.name);
    response.write(params.url);
    respones.end();   //结束
}).listen(8888);

POST

对于POST请求,url在首次提交到时往往是不完整的,不完整部分需要后续来提交和指定,一旦所指定和提交的内容完整时,才会做出响应。从上面分析来看,POST请求至少有2个状态,一个是接受到的是POST请求时,开启监听,但是不做响应的状态,一个是所要提交的内容完整时,根据内容进行响应的状态。
eg:

var http = require('http');
var querystring = require('querystring');

http.createServer(function (req, res){
    var body = "";
    //接受到请求时的状态
    req.on('data', function(chunk){
      body += chunk;
    });
    //提交完整请求时的状态
    req.on('end',function(){
    //根据完整的内容进行解析和响应
    body = querystring.parse(body);
    res.writeHead(200,{'Content-Type': 'text/html;charset = utf8'});

    //if ... res.write(..);

    res.end();
  }0;
}).listen(8888);

Node.js Web模块

此处输入图片的描述

创建一个服务器:

var http = require('http');
var fs = require('fs');
var url = require('url');

http.createServer( function (request, response) {  
   // 解析请求,包括文件名
   var pathname = url.parse(request.url).pathname;

   // 从文件系统中读取请求的文件内容
   fs.readFile(pathname.substr(1), function (err, data) {
      if (err) {
         console.log(err);
         response.writeHead(404, {'Content-Type': 'text/html'});
      }else{             
         response.writeHead(200, {'Content-Type': 'text/html'});    
         response.write(data.toString());        
      }
      //  发送响应数据
      response.end();
   });   
}).listen(8888);
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值