【发布时间】:2016-06-12 15:49:16
【问题描述】:
我需要从 express 向浏览器发送警告消息。 所以,我需要帮助才能做到这一点。目前我正在使用 MEAN 应用程序。 在这里,我必须在 Express 和 HTML 之间进行通信。
【问题讨论】:
我需要从 express 向浏览器发送警告消息。 所以,我需要帮助才能做到这一点。目前我正在使用 MEAN 应用程序。 在这里,我必须在 Express 和 HTML 之间进行通信。
【问题讨论】:
我会给你一个使用 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
【讨论】:
请参阅 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.sendFile、res.render、res.redirect等
【讨论】: