我的要求是使用express发送一个对象方法作为响应。这样我就可以在前端创建动态 onClick js 代码。
const data = {
message: "Hi",
click: () => {
console.log("Hello world");
}
};
res.send(data);
我尝试发送,但该方法无法发送。上述示例代码在前端JS中的日志如下。
{message: "Hi"}
我的解决方法是将整个函数作为字符串发送,然后使用函数构造函数来解析该字符串。它有效,但我读了其他论坛条目,其中说将字符串解析为函数是非常糟糕的做法。
请建议我解决这个问题的方法。
最佳答案
你基本上有两个选择:
按原样使用
Function
构造函数。 如果您可以信任从谁那里获取要转换为代码的字符串,那就没问题了。当您不需要将字符串转换为函数(例如,有更好的方法)或使用来自您不信任的来源的字符串时,您不应该使用它。根本不发送动态处理程序。相反,在您的页面中包含的脚本中包含一组标准处理程序:
const handlers = { sayHi() { alert("Hello world"); }, doSomething() { // ... }, doSomethingElse() { // ... } };
并发送回处理程序的名称(
"sayHi"
、"doSomething"
、"doSomethingElse"
)而不是处理程序的代码。然后通过handlers[name]
使用处理程序。
关于javascript - 发送对象方法作为 NodeJS 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59704787/