目录

一、express框架

二、路由传参

三、路由器(用来管理路由)

四.中间件(插件) 

每日一句

 

一、express框架

        基于Node.js平台,快速、开放、极简的WEB开发框架

        网址:www.expressjs.com.cn

         安装:npm  install  express

创建WEB服务器

const express=require('express') //引入express模块

const app=express() //创建WEB服务器

app.listen(3000) //设置端口 路由

 路由用于监听特定的请求;

包含请求的网址请求的方法回调函数请求的对象 req

req.url          获取请求的网址 req.method          获取请求的方式req.query           获取get传递的参数响应的对象res

res.send()           设置响应的内容并发送res.redirect()           设置响应的重定向res.sendFile()         设置响应的文件并发送(文件必须使用绝对路径  __dirname)路由传递参数

路由传递参数

传参方式格式路由中获取get传递http://127.0.0.1:3000/mysearch?kw=小米&a=1req.query {kw:'小米', a:1}post传递参数在网址中不可见 http://127.0.0.1:3000/mylogin2需要使用插件 req.body {user:'tao', pwd:'123456'}使用插件将post传参转为对象 app.use( express.urlencoded({  extended:true  //是否使用扩展的第三方模块}) )

二、路由传参

通过网址来传递,看不到参数名,需要在路由中设置参数名 //http://127.0.0.1:3000/search/手机/1

app.get('/search/:kw/:a', (req,res)=>{

req.params //获取params传递的参数

})

三、路由器(用来管理路由)

路由器模块

引入express模块创建路由器对象     const  r=express.Router() 添加路由暴露路由器对象     module.exports = r WEB服务器模块

引入路由器模块挂载路由器,路由器下所有路由就会成为服务器一部分app.use('添加的前缀', 引入的路由器) // 引入自定义用户路由

const routerUser = require("./routers/user");

// 使用路由

app.use("/user", routerUser);

四.中间件(插件) 

用于拦截对WEB服务器的请求;

        中间件分为应用级中间件、路由级中间件、内置中间件、第三方中间件、错误处理中间件

应用级中间件

也称为自定义中间件,就是一个函数,一旦拦截会自动调用这个函数 function fn(req,res,next){

next() 往后执行,可能是下一个中间件,或者路由

}

app.use(要拦截的网址, fn) 路由级中间件

就是路由器的使用当拦截到网址以后,要到指定的路由器下寻找路由 app.use( 要拦截的网址, 路由器 ) 内置中间件

 express提供的中间件,可以直接使用将post传参转为对象

app.use( express.urlencoded({

extended: true

}) )  托管静态资源

 静态资源,包含有html、css、js、图片、视频、声音…托管静态资源:浏览器要请求静态资源,不需要通过路由响应文件,而是自动的到指定的目录下查找。 app.use( express.static('托管的目录') ) 第三方中间件

都是以第三方模块的形式出现,需要先去下载安装网址: http://www.codece.com/archives/173 multer中间件(文件上传)错误处理中间件

// 错误处理中间件

app.use((req,res,next,err)=>{

console.log(err)

res.send({

code:500,

msg:'服务器错误'

})

}) app.use((err,req,res,next)=>{

return next(err)

})

每日一句

不积跬步,无以至千里,不积小流,无以成江海。

        "不把半步、一步积累起来,就不能走到千里远的地方,不把细流汇聚起来,就不能形成江河大海。 "

相关阅读

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。