我尝试从表单提交数据,然后从控制器中有3种可能性,它已经存在,数据错误并且已成功创建。然后我想将一个值返回给前端,让我们说一切正常,然后我返回{result:0}。 然后使用ejs我将检查'结果'的值。如果它是0我想调用(前端)javascript函数。
EJS:
<html>
<head>
<script src="functions.js">
</head>
<body>
<form action="/test" method="POST">
<input type="text" name="data" />
<button>Send</button>
</form>
<div id="message">
<% if (typeof result !== 'undefined' && result === 0){ %><script>showMessage();</script><% } %>
</div>
</body>
</html>
Javascript (前端)
function showMessage() {
document.getElementById('message').innerText = "sometext";
}
Javascript (后端)
module.exports = {
postData: function (req, res) {
Data.findOne({data: req.param('data')}).exec(function (err, data) {
if (err) {
return {result : 1};
}
if (data) {
return {result: 2};
}
if (!data) {
Data.create({data: req.param('data')}, function (err, data) {
if (err) {
return {result: 1};
}
return {result: 0};
});
}
});
}
}
我知道如何使用res.view()发送数据,但我不想再次重新加载页面我只想向前端发送内容并采取一些措施。
感谢您的时间。
答案 0 :(得分:0)
您最好的选择是包含要内联执行的Javascript脚本。然后,如果结果等于0,则可以使用条件EJS子句来包含脚本。
<% if (result == 0) { %>
<script type="text/javascript">
/* Your Function Here */
</script>
<% } %>
答案 1 :(得分:0)
您可以在后端存储变量,例如。 someVariable = "some value"
然后在你的前端致电<%- someVariable %>
或者将其保存为后端中的对象,例如。
vehicle.car = {
manufacturer: 'Holden',
make: 'Colorado',
year: '2018'
}
然后在前端调用对象模型,例如。
<p>Your <%- vehicle.car.year %> <%- vehicle.car.manufacturer %> <%- vehicle.car.make %>...
用例示例是显示页脚请求的页脚partial的当前版权年份。