【发布时间】:2021-03-04 01:46:29
【问题描述】:
我有一个独特的用例,我想向端点发出 GET 请求并返回一个 javascript 函数作为响应。我目前使用 node.js 和 express,但对其他框架开放。
所以在服务器端,如果客户端请求获取“加法”的功能。
我希望服务器发送一个如下所示的函数作为响应:
function add(num1, num2){
return num1 + num2
}
然后客户端可以获取响应并使用该功能。例如:
axios(config).then(response=>{
myfunction = response
return myfunction(1,5)
//returns 6
})
有没有办法在服务器端“序列化”函数并将其转换为客户端的实际函数。
【问题讨论】:
-
是的,使用
new Function或eval,但这样做有点奇怪 -
return myfunction.toString(); -
如果是要传下来的函数,不如把函数放在一个模块上,然后通过
import()加载? -
rpc 是否适合您:远程过程调用 (RPC) 是一种协议,一个程序可以使用该协议向位于网络上另一台计算机的程序请求服务,而无需了解网络的详细信息。 RPC 用于调用远程系统上的其他进程,如本地系统。
-
简而言之:不要。重新考虑您的架构。允许高级但非常受限的表达式。但不要只返回纯代码。
标签: javascript node.js rest express