博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NodeJS - Express 4.0下使用app.dynamicHelpers错误
阅读量:5047 次
发布时间:2019-06-12

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

在NodeJS - Express 4.0下使用app.dynamicHelpers发生错误:

app.dynamicHelpers({    ^TypeError: Object function (req, res, next) {    app.handle(req, res, next);  } has no method 'dynamicHelpers'

查阅资料发现新版本的Express已经不支持dynamicHelpers方法了。可以用locals来替代。

原来代码如下:

app.dynamicHelpers({    user: function(req, res) {        return req.session.user;    },    error: function(req, res) {        var err = req.flash('error');        if (err.length)            return err;        else            return null;    },    success: function(req, res) {        var succ = req.flash('success');        if (succ.length)            return succ;        else            return null;    }});

用locals方式替换为:

app.use(function(req,res,next){  res.locals.user=req.session.user; var err = req.flash('error');  var success = req.flash('success');   res.locals.error = err.length ? err : null;  res.locals.success = success.length ? success : null;     next();});

以上代码一定要放在指定路由的语句之前,不然页面中访问user、error、success变量会出错,提示:user is not defined。

注意:

req.flash 是 Express 提供的一个奇妙的工具,通过它保存的变量只会在用户当前

和下一次的请求中被访问,之后会被清除,通过它我们可以很方便地实现页面的通知
和错误信息显示功能。

所以如上代码如果修改成下面的写法,就无法在页面中正确显示出error和success的值。

app.use(function(req,res,next){  res.locals.user=req.session.user;  res.locals.error = req.flash('error').length ? req.flash('error') : null;  res.locals.success = req.flash('success').length ? req.flash('success') : null;     next();});

即是req.flash的值会在第一次访问之后会被清除。

转载于:https://www.cnblogs.com/yumianhu/p/3713380.html

你可能感兴趣的文章
二叉树的遍历 - 数据结构和算法46
查看>>
类模板 - C++快速入门45
查看>>
centos7 搭建vsftp服务器
查看>>
RijndaelManaged 加密
查看>>
Android 音量调节
查看>>
HTML&CSS基础学习笔记1.28-给网页添加一个css样式
查看>>
windows上面链接使用linux上面的docker daemon
查看>>
Redis事务
查看>>
Web框架和Django基础
查看>>
python中的逻辑操作符
查看>>
CSS兼容性常见问题总结
查看>>
HDU 1548 A strange lift (Dijkstra)
查看>>
每天一个小程序—0005题(批量处理图片大小)
查看>>
IIS的各种身份验证详细测试
查看>>
JavaScript特效源码(3、菜单特效)
查看>>
Linux常用命令总结
查看>>
yii模型ar中备忘
查看>>
C#线程入门
查看>>
CSS清除浮动方法
查看>>
JVM内存回收机制简述
查看>>