nodejs 怎么动态运行js ?
nodejs 怎么动态运行js ?
8 回复
服务器返回js代码,客户端运行?
script标签啊
eval
eval 是魔鬼,用 Function 构造。
let add = new Function(a, b, 'return a + b;');
vm这个模块
来自酷炫的 CNodeMD
感觉其实还是看运用场景,最近也遇到了这个问题,也没想到比较好的方式,不过想了几个方案,可以参考下:
- new Function,不过因为它的上下文是global,所以需要把一些在运行态需要的对象挂到global上
- vm其实也是一样,不过它有自己的上下文
- 我的需求是根据一些特定的key获取一些对象的实例,类似工厂模式,所以最终直接用了一个对象做映射。。。
在Nodejs里面一般都是用vm模块,之前有看到一篇文章讲了一下有个坑要注意一下 记一次 Node.js 应用内存暴涨分析
nice