Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用connect flash中间件取消定义函数_Javascript_Node.js - Fatal编程技术网

Javascript 使用connect flash中间件取消定义函数

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.js中

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调用进行设置。据我所知,到目前为止,我想知道,在配置了页面的路由之后,您定位了上面的代码。然后在设置消息方法之前呈现页面。在这种情况下,对
应用程序重新排序。使用
调用,以便最终定义路由


希望对你有所帮助

您提供的信息很少:如何声明flash
var 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(函数…
在定义路由后。然后,如果有请求进来,则执行路由,然后执行另一个中间件,该中间件应在路由处理程序之前运行,因为路由处理程序需要中间件向本地散列导出的消息函数。但是如果您不更新问题并向我显示问题的顺序你们的电话,我只能猜测。我想这就是为什么其他人否决了你们的问题;-)不客气;-)顺便说一句:这就是为什么我试图用一些信息来回答这个问题。如果成功的话,我会觉得自己像福尔摩斯;-)