标签:代码 定义 htm path web应用 修改 use 相对 直接
//next
路由句柄:一个函数,多个函数,函数数组,两者混合
1.next作用:移交控制权,确保所有注册的中间件被一个接一个的执行
2.如果当前中间件没有终结请求res.end,res.send,res.render,并且next没有被调用,那么请求将被挂起,后边定义的中间件将的不到被执行的机会
3.一个路由只能调用一种结束响应的方式,或只能结束响应或调用next移交控制权
4.什么时候调用next/res.end() 当定义的中间件终结了本次请求,就不应该再调用next函数,如果下面定义的中间件还有执行的必要,则继续调用next
next()将控制权交给下一个处理器函数
next(‘route’) 跳过当前处理器函数,直接将控制权交给下一个路由(路径相同)
如果通过set port=8080这条命令设置了环境变量的端口欧,那么就用环境变量的端口,否则默认的3000
port=process.env.PORT||3000
中间件是一个函数,它可以访问请求对象(req),响应对象(res),和web应用中处于请求,响应循环流程中的额中间件,一般命名为next的变量
中间件的功能:
1.可以执行任意代码
2.可以修改req,res对象
3.可以终止响应循环流程 res.end()
4.可以调用堆栈中的下一个中间件 next()
应用级中间件
应用级中间件绑定到app对象,使用app.use()和app.METHOD()
app.use([虚拟路径],ck) 1-多
当不挂载路径时,任意请求都会指向该中间件
1.绑定app
2.三个参数req,res,next
ejs
1.下载+引入ejs
2.新建一个以ejs为后缀名的文件
3.统一设置末班引擎的路径 app.set(‘views‘,path.resolve(末班引擎))
注:应用会根据app.set的第二个参数和res.render里的第一个参数拼接后的路径去寻找对应的文件,若res.render的第二个参数提供的是相对路径,则默认去views文件夹下去寻找文件
4.统一设置模板引擎app.set(‘view engine‘,‘类型‘)
注:类型其实就是当前文件的后缀名
5.渲染模板引擎
res.render(模板引擎文件名,【对象】)
注:第二个参数的数据类型必须是对象,表示后台给前端所传递的json数据
<% js %>解析、执行js
<%=data%>转义输出
<%-‘data‘%>非转义输出
<%#data%>注释
1.locals是app和res对象下的属性,该属性值是一个对象
2.locals的作用是将值传递到所渲染的模板引擎中
3.区别 app.locals可以贯穿应用的整个生命周期,与其相反的是,res.locals只在当前请求的生命周期中有效
app.locals中可以定义一些共享的数据
将html转为ejs
app.engine(‘html‘,ejs.renderFile)
app.engine(‘html‘,ejs.__express)
标签:代码 定义 htm path web应用 修改 use 相对 直接
原文地址:https://www.cnblogs.com/mapsxy/p/9824218.html