0

我用node js写了一个小程序,我用ejs作为模板。在我的程序中,我计算了我想在模式窗口上显示的两个参数“msg1”和“msg2”。不幸的是,我不能用 ejs 做到这一点。

4

1 回答 1

0

据我了解,您在服务器上运行 .ejs 模板,而不是客户端。

里面的任何东西<% %>都作为模板的一部分运行,这意味着它正在尝试调用alert服务器。这应该失败。

你还没有说什么msg1msg2是。如果它们是客户端变量,那么您只需要:

function alertNumber() {
    alert(msg1 + msg2)
}

这意味着您甚至不需要模板 - 它只是一个 HTML 文件。另一方面,如果msg1msg2是服务器端变量,则需要使用模板插入它们。这样做的一个天真的方法是这样的:

function alertNumber() {
    alert('<%- msg1 + msg2 %>')
}

这仅在msg1 + msg2不包含字符'\、换行符、回车符以及可能我错过的其他字符时才有效。如果是这样,脚本可能会失败。msg1特别是,除非并且来自受信任的来源,否则不要这样做msg2,因为任何控制它们的人都可以将他们想要的任何 javascript 代码注入客户端。但是,如果您可以保证它们是数字,那么这将不是问题。

最后但并非最不重要的......你已经定义了alertNumber. 你真的用过这个功能吗?

于 2015-06-11T21:02:38.483 回答