Javascript 使用connect flash中间件取消定义函数
在我的app.js中Javascript 使用connect flash中间件取消定义函数,javascript,node.js,Javascript,Node.js,在我的app.js中 app.use(flash()); app.use(function (req, res, next) { res.locals.messages = require('express-messages')(req, res); next(); }); 在我的翡翠档案里我有 != messages() 我打开页面,它说Undefined不是一个函数。我已经重新启动了服务器,我不知道出了什么问题。如果!=messages()导致此问题,则在呈现jade文件时,服务
app.use(flash());
app.use(function (req, res, next) {
res.locals.messages = require('express-messages')(req, res);
next();
});
在我的翡翠档案里我有
!= messages()
我打开页面,它说Undefined不是一个函数。我已经重新启动了服务器,我不知道出了什么问题。如果!=messages()
导致此问题,则在呈现jade文件时,服务器上必须发生此错误。jade编译器提供了一个包含消息方法的数据对象
此消息方法由res.locals.messages提供,并通过express messages调用进行设置。据我所知,到目前为止,我想知道,在配置了页面的路由之后,您定位了上面的代码。然后在设置消息方法之前呈现页面。在这种情况下,对应用程序重新排序。使用调用,以便最终定义路由
希望对你有所帮助 您提供的信息很少:如何声明flashvar flash=require('connect-flash')代码>还是别的什么?应用程序的哪个部分表示未定义不是函数;服务器日志、浏览器控制台还是其他?是否存在其他可能产生错误消息的代码。也许这不是由connet flash引起的,而是由另一个模块引起的。如果可能,显示所有代码文件。是的,我使用了var flash=require('connect-flash')代码>在我的app.js中。就是这一行messages()
导致问题的原因,是什么让您认为它是由其他模块引起的?那么这里的解决方案是什么?我声明var flash=require('connect-flash')代码>在我的routes@3106579需求不是问题所在,可能您调用了app.use(flash())
和app.use(函数…
在定义路由后。然后,如果有请求进来,则执行路由,然后执行另一个中间件,该中间件应在路由处理程序之前运行,因为路由处理程序需要中间件向本地散列导出的消息函数。但是如果您不更新问题并向我显示问题的顺序你们的电话,我只能猜测。我想这就是为什么其他人否决了你们的问题;-)不客气;-)顺便说一句:这就是为什么我试图用一些信息来回答这个问题。如果成功的话,我会觉得自己像福尔摩斯;-)