当前位置: 首页 > 面试题库 >

如何在Express 4.0中发送即时消息?

尉迟招
2023-03-14
问题内容

因此,我的Web应用程序需要身份验证,并且我有一个注册页面,如果该人员尝试使用数据库中已经存在的电子邮件进行注册,我想向他们显示错误消息。我正在尝试在html端使用以下代码执行此操作:

 <% if (message.length > 0) { %>
   <div class="alert alert-danger"><%= message %></div>
 <% } %>

并在我的路线中执行以下操作:

router.get('/signup', function(req, res) {
  res.render('/signup', { message: req.flash('signupMessage') });
});

我已经尝试通过以下方式设置配置:

app.configure(function() {
 app.use(express.session({ secret : 'keyboard cat' })); 
});

但这给了我一个TypeError:

 12:11:38 web.1  | app.configure(function() {
 12:11:38 web.1  |     ^
 12:11:38 web.1  | TypeError: Object function (req, res, next) {

我真的很困惑,因为我知道我需要会话才能使Flash正常工作,但是会话似乎对我来说并不起作用。我还尝试通过使用req.session.messages仅使用会话而不使用Flash,但是由于我没有会话在工作,因此这显然不起作用。

有什么见解吗?我正在使用Express 4.0.0


问题答案:

该要点应回答您的问题:

https://gist.github.com/raddeus/11061808

在您的应用程序安装文件中:

app.use(flash());

在设置会话和cookie解析器之后,将其正确放置。这实际上是使用Flash所需要的。

您正在使用:

req.flash('signupMessage', anyValue);

重定向到/ signup之前,对吗?

这是我目前用于个人网站的一个有趣的小花絮(在我的主应用程序文件中):

app.use(function(req, res, next){
    res.locals.success_messages = req.flash('success_messages');
    res.locals.error_messages = req.flash('error_messages');
    next();
});

现在,每个视图都可以访问您刷新的任何错误或成功消息。对我来说效果很好。

最后一件事(这很挑剔,但您可能会学到一些知识)。如果您更改:

<% if (message.length > 0) { %>

至:

<% if (message) { %>

它将以相同的方式工作,但是如果未定义消息,则不会失败。在javascript中,未定义和空字符串均被视为“虚假”值。

编辑:我的cookie /会话/ flash设置如下:

app.use(cookieParser('secretString'));
app.use(session({cookie: { maxAge: 60000 }}));
app.use(flash());

也许看到您的应用程序设置代码会有所帮助。另请注意,在Express 4中不再需要使用app.configure。

最终编辑:https :
//gist.github.com/raddeus/11061808

那是一个可行的例子。运行该应用程序后转到localhost:3000,您应该会['it worked']在屏幕上看到。



 类似资料:
  • 我正在尝试实现一个非常简单的骆驼路由,即从CXFendpoint接收请求,并将其放置在队列中,以便稍后进行异步处理。一旦消息被放置在队列中,我需要能够向调用者发送一个响应,指示消息已被接收。我已经完成了教程,但似乎无法正确完成。所发生的情况是,一旦消息被放置在队列中,在消息从队列处理到其预期目的地之前,不会向调用者发送响应。 下面的代码

  • 问题内容: 我使用以下代码发送邮件。文本消息发送正常,但带有附件的邮件不起作用,它给出了异常。 javax.mail.MessagingException:发送消息时发生IOException;嵌套的异常是:javax.activation.UnsupportedDataTypeException:MIME类型为multipart / mixed的无对象DCH;boundary =“ ---- =

  • 谁能给出一个简单的代码吗?我可以简单地进行HTTP调用吗?

  • 我正在开发一个可以被描述为自定义WMQ消息路由器/转发器的东西。目前,我在处理通过MQ发送的JMS消息时遇到了一些非常令人困惑的问题。我能够通过JMS接收来自Java应用程序的消息发送(以MQ作为传输),但不能将消息发送到JMSendpoint上侦听的Java应用程序。 直接通过JMS发送: 通过我的应用程序发送: RFH2中的所有元素也包含type。文件夹中的元素顺序不同,但根据异常情况,问题应

  • 我想向bot已加入的所有频道发送消息 当特定文件的散列结果与原始结果不同时,我希望将消息发送到bot加入的所有不协调通道。我知道如何向频道发送回复信息 用这个代码,对吗?但我想发送消息到所有的通道,机器人已加入当一些事件发生。

  • 我已在中创建了我的应用程序并配置为云消息传递。当我从控制台发送通知时,设备会收到通知,但如果我尝试通过Rest API(使用PostMan)发送。然后通知不会到达设备,但响应显示为成功。 这是我的邮差请求 URI-https://fcm.googleapis.com/fcm/send 标题:内容类型:应用程序/json授权:密钥=MY_SERVER_KEY 正文:{“数据”:{“标题”:“火力基地