Express是nodejs的一个快速搭建web服务的一个模块,采用非破坏式原则:在nodejs接口基础上添加接口,保持原有接口
使用之前,先安装express的模块,方法为npm install express
基本使用方法:
直接调用express();即可返回一个server对象,server.use();可以处理get和post请求
const express = require('express');
//调用express函数,即可返回一个server的对象
var server = express();
//接受
server.use('/',function(req, res, next){
console.log('some one connect!');
res.end();
});
server.listen(8080);
get和post方法:
除了use();外,还有server.get();和server.post();可以处理用户的请求,只不过get只能处理get请求,而post只能处理post请求
const express = require('express');
var server = express();
server.listen(8080);
//监听get请求
server.get("/",function(req, res, next){
console.log("get request");
next();
});
server.post("/", function(req, res, next){
console.log("post request");
next();
});
server.use("/", function(req, res, next){
console.log("use request");
res.end();
});
流水式处理:
上面的例子中,server的回调函数中比原生的多了一个next的参数,这个参数可以让开发者选择是否继续执行下一个get,post或着use方法,如果在get,post,use中调用了next();程序会继续之下下一个get,post,use,否则结束处理。
上面的例子只接收了''/"路径的请求,是访问不到任何文件的,下面将举个流水处理的栗子:
(不知为什么use 之后 不能传递到get 或者 post,没空查了)
const express = require('express');
const urlLib = require('url');
const fs = require('fs');
//const body-parser = require('body-parser');dd
var server = express();
server.listen(8080);
//先使用use("/")得到访问的文件路径
var pathname = "";
server.use('/',function(req, res, next){
var obj = urlLib.parse(req.url);
//获取访问路径
pathname = obj.pathname.slice(1);
console.log("use request", pathname);
next();
});
//监听get请求
server.use(pathname,function(req, res, next){
console.log("request url : ", pathname);
fs.readFile(pathname, (err, data)=>{
if(err){
res.send("404");
}else{
res.write(data);
}
res.end();
});
});
常用方法:
由于是略懂就可,所以这里就不去深究了
常用中间件:
express框架只是提供了一些基础的服务,但是可以借助中间件完成一些对应的工作:
1.express-static //读取静态文件
2.body-parser //解析url
3.multer //上传文件处理