博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node ejs
阅读量:4510 次
发布时间:2019-06-08

本文共 1326 字,大约阅读时间需要 4 分钟。

//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)

 

转载于:https://www.cnblogs.com/mapsxy/p/9824218.html

你可能感兴趣的文章
php glob()函数实现目录文件遍历与寻找与模式匹配的文件路径
查看>>
CentOS6.3 编译安装LAMP(2):编译安装 Apache2.2.25
查看>>
》》》《类的继承》
查看>>
cad.net之ACAD移植到GCAD的自动加载问题
查看>>
Java超简明入门学习笔记(一)
查看>>
CaltrainTimes从设计到发布(基于Flex的手机应用)
查看>>
三层架构1
查看>>
JVM虚拟机笔记(3)-- 类加载器实践热部署
查看>>
Windows照片查看器--全屏浏览查看
查看>>
使用LinkedList存储一副扑克牌,然后实现洗牌功能。
查看>>
Windows环境下使用bitvise架构sftp服务器
查看>>
Python爬虫urllib2库基本使用
查看>>
[计算机网络] 一些应用对应的的应用层协议及传输层协议
查看>>
学习进度五
查看>>
【转】Git操作
查看>>
2014暑期最后一次个人赛
查看>>
●洛谷P1291 [SHOI2002]百事世界杯之旅
查看>>
软工网络15团队作业2——团队计划
查看>>
MySQL--创建用户
查看>>
isIos
查看>>