我想在Node.js中传递一个javascript函数作为从一个服务器到另一个服务器的URL参数。我使用爱可信NPM包发送的数据,这里的代码示例:如何在URL中传递javascript函数?
let f = function(){
return "Returned Value Here";
}
axios({url: '/', method: 'POST', data: {something: "foo", bar: f}})
.then((response)=>{console.log(response)})
.catch((reason){console.log(reason)})
Acccording其他问题时有人建议我用eval()
javascript函数来评估代码,但是这会导致一个问题。
首先我想通过接收端的功能,而不是评估它。而且,即使我评估获得的功能将是一个命名函数(我想传递一个匿名函数)不能被引用
例如
let bar = eval('function baz(){console.log("Test");}')
酒吧是不是函数的引用(酒吧未定义),并且如果您使用typeof baz()
,则返回的值为STRING。
那么如何在URL中传递函数呢?
记住POST请求发送数据的二进制
函数具有一个返回函数声明的“源代码”一个'的toString()'方法。 –
好吧,下一步是什么?我正在考虑将代码分解为“()”,并使用函数构建器或其他方法进行重构。你的建议是什么? – omarwaleed
是的,我认为这是要走的路。你可以通过字符串操作/正则表达式来去除函数的主体,并使用'Function()'构造函数来重新创建函数。传递参数应该有点棘手。然而,IMO向服务器传递“行为”并不是很好。您将服务器设计为具有明确定义的行为并仅传递数据。 –