【问题标题】:sending message from express to html从 express 发送消息到 html
【发布时间】:2016-06-12 15:49:16
【问题描述】:

我需要从 express 向浏览器发送警告消息。 所以,我需要帮助才能做到这一点。目前我正在使用 MEAN 应用程序。 在这里,我必须在 Express 和 HTML 之间进行通信。

【问题讨论】:

    标签: html node.js express mean


    【解决方案1】:

    我会给你一个使用 express 和 .ejs 作为视图引擎的例子。它比普通的 .html 提供了更多的灵活性,但仍然很简单(并且看起来几乎相同)。

    通过这种方式,您可以设置路由(根据地址/路径将用户重定向到不同站点的方式),同时将数据传递到您的视图。

    路由器.js

    var express = require('express');
    var router = express.Router();
    
    router.get('/', function (req, res, next) {
        res.render('someView', {msg: 'Express'});
    });
    

    Above 将传递一个名为 msg 的变量,其值为 Express 并呈现 yourView(基本上是您的一些页面)。

    yourView.ejs

    <!DOCTYPE html>
    <html>
    <head>
        <title><%= msg %></title> // here is how you can use variable passed from back-end in .ejs templates
    </head>
    <body>
    <h1>Hello there</h1>
    </body>
    </html>
    

    当然,您可以将数组、json、obj 等传递给您的视图。

    router2.js

    var arr = ['a', 'b', 'c'];
    var obj = {a: 1, b: 1, c: 2, d: 3, e: 5};
    var objJSON = JSON.stringify(obj);
    
    res.render('demo', {arr: arr, objJSON: objJSON}); // key: value, so you will refer by key in your view
    

    您也可以在视图的 JS 脚本中使用此值。 比如这样的

    // html/ejs markup here
    <body>
    // bla bla...
    <script>
        var tmp = <%= msg %>
        alert(tmp);  
        /* obviously you need some kind of logic when you want
        alert/popup or whatever to happen. At least some simple IF statement.
        */
    </script>
    </body>
    </html>
    

    不过,以快递方式向最终用户显示消息的更流行方式是使用 Flash 消息。看看这个link to Connect-Flash 中间件。简单的用法就是exapl

    【讨论】:

    • 将 msg:'Express' 看起来像弹出消息。因为我需要从 EXPRESS 向浏览器显示弹出警告
    • 你给出的例子也很容易理解。谢谢
    • 场景是,'如果用户请求一个已经分配给其他用户的 url,那么在检查数据库时我需要警告用户提供不同的 url'。你能帮我吗这个
    • 我编辑了我的答案,希望对您有所帮助。你也应该多谷歌一下。
    【解决方案2】:

    请参阅 express 的 docs 并阅读有关响应的信息。示例:

    app.get('/user/:id', function(req, res){
      res.send('user ' + req.params.id); // Send to view (html,jade, ejs) somethink message
    });
    

    res 对象表示 Express 应用发送的 HTTP 响应 当它收到 HTTP 请求时。

    还有更多的回复方式,如res.sendFileres.renderres.redirect

    【讨论】:

    • 其实我需要从 EXPRESS 向浏览器发送一个弹出警告。这可能吗?
    • 场景是,'如果用户请求一个已经分配给其他用户的 url,那么在检查数据库时我需要警告用户提供不同的 url'。你能帮我吗这个
    • 我试过 res.send,res.sendfile...但他们不显示弹出窗口
    猜你喜欢
    • 2021-07-18
    • 2016-11-25
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多