Express框架基础

一、安装,配置

npm install express


二、接收请求

1.创建服务
var express = require("express");
2.监听
server.listsen(8080);
3.处理请求
server.use('地址',function(req,res{}))

var express = require("express");
var server = express;
server.use("/a.html",function(req,res){
   res.send("abc");
   res.end();
});
server.listsen(8080);

express保留了原生的功能,添加了一些方法,增强原有的功能。例如:res.send()就增强了write的功能,write不能发送json串。

  • 3种方法接受请求
.get('/',function(req,res){})
.post('/',function(req,res){})
.use('/',function(req,res){})//get post都可以
  • express依赖于中间件

三、中间件

  • 简单说,中间件(middleware)就是处理HTTP请求的函数。它最大的特点就是,一个中间件处理完,再传递给下一个中间件。每个中间件可以从实例,接收三个参数,依次为request对象(代表HTTP请求)、response对象(代表HTTP回应),next回调函数(代表下一个中间件)。每个中间件都可以对HTTP请求(request对象)进行加工,并且决定是否调用next方法,将request对象再传给下一个中间件。
  • 一个不进行任何操作、只传递 request 对象的中间件,就是下面这样
function Use(req, res, next) {
next();
}
  • 如果它带有参数,则代表抛出一个错误,参数为错误文本。抛出错误以后,后面的中间件将不再执行,直到发现一个错误处理函数为止。
  function Use(req, res, next) {
  next("Error");
}
  • 链式操作
server.use('/',function(req,res,next){//链式操作需要加上第三个参数
  console.log('a');
  
  next();//调用后才真正被链起来
});

server.use('/',function(req,res){
  console.log('b');
})
  • 使用前,需要在命令窗口cnpm install express-static下载中间件;(这里用express-static举例)
const express = require('express');
const expressStatic = require('express-static');
var server = express();
server.listen(8080);
server.use(expressStatic('./静态文件所在目录')); //expressStatic相当于一个函数

数据:GET POST

  • GET:无需中间件 数据存在 req.query 中
  • POST:需要body-parser中间件,用法如下
const express=require('express');
const bodyParser=require('body-parser');

var server=express();

server.use(bodyParser.urlencoded({}));//解析post数据,将其放到req.body
server.use(function(req,res){
   console.log(req.body);
});

//另外,bodyParser.urlencoded可以有参数
server.use(bodyParser.urlencoded({
	extended,默认false ,设置为true时应用扩展模式//扩展模式
	limit;//限制POST数据大小 1024=1k,1024*1024=1M,1024*1024*1024=1G
}));
  • body-parser模拟实现,并不如bodyparser
const express=require('express');
const querystring=require('querystring');
var server=express();
server.listen(8080);

server.use(function(req,res,next){	
	var srt="";
	req.on('data',function(data){
	  str+=data;
        });
        
        req.on('end',function(){
		req.body=querystring.parse(str);
		next();
	})
	
});
server.use('/',function(req,res){
	console.log(req.body);
});
  • 写成自己的中间件
const express=require('express');
const body=require('./my-borderparser');//引用自己的模块

var server=express();
server.use(body);


/*自己写my-bodyparser*/
const querystring=require('querystring');

module.export=(function(){ 
    return function(req,res,next){
      var srt="";  
      req.on('data',function(data){
         str+=data;
      });
        
      req.on('end',function(){
       req.body=querystring.parse(str);
	  next();
      });
     };
}
  • express写简易注册登录(js 部分如下)
const express = require('express');
const expressStatic = require('express-static');
var server = express();
var users={   
 blue:"123",   
 mike:"7878"
}
server.listen(8080);
server.get('/login',function(req,res){  
 var user = req.query('user');   
 var pass = req.query('pass');
 if(users[user]==null){     
    res.send({ok:false,msg:'用户不存在'});   
 }else{    
    if(users[user]!=pass){       
        res.send({ok:false,msg:'密码错误'});       
    }else{      
     res.send({ok:true,msg:'成功'});       
    }   
 }
 });
server.use(expressStatic('./www'));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值