Javascript 将对象方法作为响应节点发送
我的要求是使用express发送一个对象方法作为响应。这样我就可以在前端创建动态onClick js代码Javascript 将对象方法作为响应节点发送,javascript,html,node.js,express,Javascript,Html,Node.js,Express,我的要求是使用express发送一个对象方法作为响应。这样我就可以在前端创建动态onClick js代码 const data = { message: "Hi", click: () => { console.log("Hello world"); } }; res.send(data); 我试图发送它,但该方法无法发送。前端JS中上述示例代码的日志如下所示 {message: "Hi"} 我的解决方法是将整个函数作为字符串发送,然后使用函数构造函数来解析字符串。
const data = {
message: "Hi",
click: () => {
console.log("Hello world");
}
};
res.send(data);
我试图发送它,但该方法无法发送。前端JS中上述示例代码的日志如下所示
{message: "Hi"}
我的解决方法是将整个函数作为字符串发送,然后使用函数构造函数来解析字符串。它工作了,但我读了其他论坛条目,其中说将字符串解析为函数是非常糟糕的做法
请建议我解决这个问题的方法。您基本上有两个选择:
函数
构造函数。如果您可以信任将字符串转换为代码的用户,那么这很好。当您不需要将字符串转换为函数时(例如,有更好的方法),或者使用来自您不信任的源的字符串时,您不应该使用它const handlers = {
sayHi() {
alert("Hello world");
},
doSomething() {
// ...
},
doSomethingElse() {
// ...
}
};
并返回处理程序的名称(“sayHi”
,“doSomething”
,“doSomethingElse”
)而不是处理程序的代码。然后通过handlers[name]
使用处理程序您基本上有两种选择:
函数
构造函数。如果您可以信任将字符串转换为代码的用户,那么这很好。当您不需要将字符串转换为函数时(例如,有更好的方法),或者使用来自您不信任的源的字符串时,您不应该使用它const handlers = {
sayHi() {
alert("Hello world");
},
doSomething() {
// ...
},
doSomethingElse() {
// ...
}
};
并返回处理程序的名称(“sayHi”
,“doSomething”
,“doSomethingElse”
)而不是处理程序的代码。然后通过handlers[name]
使用处理程序