nodejs 怎么动态运行js ?
发布于 2 个月前 作者 luanhaipeng 665 次浏览 来自 问答

nodejs 怎么动态运行js ?

8 回复

服务器返回js代码,客户端运行?

eval 是魔鬼,用 Function 构造。

let add = new Function(a, b, 'return a + b;');

vm这个模块

来自酷炫的 CNodeMD

感觉其实还是看运用场景,最近也遇到了这个问题,也没想到比较好的方式,不过想了几个方案,可以参考下:

  1. new Function,不过因为它的上下文是global,所以需要把一些在运行态需要的对象挂到global上
  2. vm其实也是一样,不过它有自己的上下文
  3. 我的需求是根据一些特定的key获取一些对象的实例,类似工厂模式,所以最终直接用了一个对象做映射。。。

在Nodejs里面一般都是用vm模块,之前有看到一篇文章讲了一下有个坑要注意一下 记一次 Node.js 应用内存暴涨分析

回到顶部