通过Node.js中的REST API传输整个Javascript对象的最佳方式
我试图弄清楚如何通过RESTAPI传输JS(而不是JSON),基本上是这样的想法:客户机可以发送带有函数()的对象,这些函数将为后续执行提供功能 比如说 如何传播通过Node.js中的REST API传输整个Javascript对象的最佳方式,javascript,node.js,rest,Javascript,Node.js,Rest,我试图弄清楚如何通过RESTAPI传输JS(而不是JSON),基本上是这样的想法:客户机可以发送带有函数()的对象,这些函数将为后续执行提供功能 比如说 如何传播 var jsObj = { a: 1 b: function () { console.log("B") } } 从节点A到节点B,这样节点B就知道如何执行B() 谢谢如果您控制这两项服务,为什么不让节点A向节点B报告一个字符串API端点,节点B可以使用某些数据访问该端点?像 var jsObj = { a: 1
var jsObj = {
a: 1
b: function () { console.log("B") }
}
从节点A到节点B,这样节点B就知道如何执行B()
谢谢如果您控制这两项服务,为什么不让节点A向节点B报告一个字符串API端点,节点B可以使用某些数据访问该端点?像
var jsObj = {
a: 1
b: "http://api.somedomain.com/api/b/"
};
然后让节点B使用任何必要的数据调用该端点(在本例中使用):
并且在节点B中有一个与/api/B/:param
匹配的路由和一个处理它的函数(不确定路由使用的是什么-这是一个特定于express的示例)
这是面向服务体系结构背后的一种理念:每个服务都知道如何处理功能的子集,并且服务相互通信以完成任务。如果您控制这两个服务,为什么不让节点a向节点B报告一个字符串API端点,节点B可以使用某些数据访问该端点?像
var jsObj = {
a: 1
b: "http://api.somedomain.com/api/b/"
};
然后让节点B使用任何必要的数据调用该端点(在本例中使用):
并且在节点B中有一个与/api/B/:param
匹配的路由和一个处理它的函数(不确定路由使用的是什么-这是一个特定于express的示例)
这就是面向服务的体系结构背后的想法:每个服务都知道如何处理功能的子集,并且服务之间相互通信以完成任务。我想用javascript传输文件,然后执行eval会起作用,但不确定这是否是解决问题的最佳方法:(你怎么能相信客户端发送的内容可以安全地执行?例如,他们可以使用child_进程模块生成一个可执行文件来破坏你的系统。哈哈,你说的是“后执行”)。David是对的,eval()这将是唯一可行的方法,但这可能会变得混乱。这听起来像是带有身份验证令牌的JSONP的用例。如果只是对传输进行身份验证,可能会更干净,然后对其进行正常评估。我非常确定这一想法与REST或CRUD无关,我可能是错的。“后执行”AHAH,当你在葡萄牙语XD中尝试说英语思维时,我不担心命令注入,我总是可以用PUBKEY认证数据,避免使用矢量时钟重放攻击。后来,迪伦试图把Node.js节点与NoDE.js节点断开,中间没有脚本标记,JSONP就是它。,但到目前为止,它正在删除JSON函数,您能给我举个例子吗?谢谢!我想用javascript传输文件,然后执行eval将起作用,但不确定这是否是解决问题的最佳方法:(你怎么能相信客户端发送的内容可以安全地执行?例如,他们可以使用child_进程模块生成一个可执行文件来破坏你的系统。哈哈,你说的是“后执行”)。David是对的,eval()这将是唯一可行的方法,但这可能会变得混乱。这听起来像是带有身份验证令牌的JSONP的用例。如果只是对传输进行身份验证,可能会更干净,然后对其进行正常评估。我非常确定这一想法与REST或CRUD无关,我可能是错的。“后执行”AHAH,当你在葡萄牙语XD中尝试说英语思维时,我不担心命令注入,我总是可以用PUBKEY认证数据,避免使用矢量时钟重放攻击。后来,迪伦试图把Node.js节点与NoDE.js节点断开,中间没有脚本标记,JSONP就是它。,但到目前为止,它正在删除JSON函数,你能给我举个例子吗?谢谢!谢谢@tandrewnichols,问题是我真的想传递功能,这是一个硬件的东西,远程上的代码取决于连接的设备,它必须足够模块化,每个人都可以为各种事情编写简单的小控制器s并部署它们,我想我将不得不进行文件传输(密码、签名、所有安全方面的事情)然后要求它像一个节点模块一样来实现这一点。谢谢@tandrewnichols,问题是我真的想传递功能,这是一个硬件的东西,远程上的代码取决于连接的设备,它必须足够模块化,每个人都可以为各种事情编写简单的微型控制器并部署它们,我想我将不得不进行文件传输(密码、签名、所有安全方面的事情),然后像节点模块一样要求它来实现这一点。