目录
一、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)
})
每日一句
不积跬步,无以至千里,不积小流,无以成江海。
"不把半步、一步积累起来,就不能走到千里远的地方,不把细流汇聚起来,就不能形成江河大海。 "
相关阅读
发表评论