【问题标题】:nodejs render multiple pages at oncenodejs一次渲染多个页面
【发布时间】:2017-08-22 03:38:37
【问题描述】:

我有一个contact 页面,人们可以在其中放置他们的contact detailsmessage。一旦他们输入了他们的信息,它就会保存到mongodb collection。如果没有错误,我想清空联系表格并显示一条弹出消息说谢谢。现在如果我使用

    app.post("/contact", function(req, res){
    var name = req.body.name;
    var email = req.body.email;
    var phone = req.body.phone;
    var message = req.body.mess;
    var contact_message = new Contact({name:name,email:email,phn_no:phone,message:message});
    contact_message.save(function (err) {
    if (err) {
        return err;
    }
    else {
        console.log("Contact details saved");
        res.render("contact");
    }
  });

上面的代码只是返回相同的contact page,没有感谢信息。如果我尝试创建一个新的ejs 页面(eg:thankyoupage)并通过使用发送消息来呈现该页面:

res.render("thankyoupage",{message: "thankyou"});

它只会呈现新的感谢页面,而联系页面不受影响。所以在这种情况下我不会有联系页面。我想要两者兼而有之的东西,我会在后台显示一个弹出窗口,在联系页面上显示带有空白字段的感谢消息。无论如何我可以做到吗?任何建议/帮助/示例将不胜感激。

【问题讨论】:

    标签: javascript node.js mongodb express ejs


    【解决方案1】:

    在您的联系页面中,您可以插入在页面首次加载时运行的脚本。该脚本检查页面中是否设置了某个 Javascript 变量。如果设置了该变量,则脚本会弹出一条感谢消息。如果未设置 Javascript 变量,则该脚本不执行任何操作。

    然后,在服务器上,当您呈现页面时,您向模板传递一个属性,该属性告诉它为 Javascript 变量插入什么内容。这样你的渲染操作就可以控制页面是否弹出消息。

    您可以根据需要使其功能丰富。例如,您可以传递渲染,也就是您希望页面显示的确切消息,模板可以将该消息放入页面中的脚本将显示的 Javascript 变量中。

    同样,弹出窗口可以随心所欲地丰富。它可能是整个 div 占据整个页面,而页面的联系人部分暂时隐藏,或者您可以在常规联系人页面上使用 alert()prompt() 消息框。

    【讨论】:

    • 我不确定我该怎么做,如果我尝试将某些内容从渲染发送到 javascript,我会遇到各种错误
    • @scrpaingnoob - 您必须展示您的模板以及您尝试的内容,以便我们知道您做错了什么或如何帮助您解决问题。
    • 我想我按照你说的方式明白了,谢谢你的建议
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-21
    相关资源
    最近更新 更多