首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >node.js -对活动进程求值

node.js -对活动进程求值
EN

Stack Overflow用户
提问于 2011-01-31 10:20:30
回答 3查看 4K关注 0票数 16

有没有人使用现有的node.js REPL为自己设置了类似的东西?我没有想出一个快速的方法来做这件事。

我现在的方法是使用emacs和这个:https://github.com/ivan4th/swank-js

本模块由以下部分组成:

  1. 与js2-mode结合使用,可以让你简单地在函数def的主体中的某个地方发出一个C-M-x --然后将函数的字符串发送到..
  2. Swank-js服务器(是的,你可以直接从你的本地机器求值到远程进程)用Node.js编写-它接收你求值的函数的字符串并实际求值
  3. 允许你用浏览器连接到那个服务器上的另一个端口然后让你在那个浏览器上操作DOM (这是非常神奇但不相关的)

我的解决方案在emacs端使用SLIME-js,我需要(‘swank- js')我的app.js文件

现在.。关于我的解决方案或其他可能的解决方案,我有几个问题和问题:

Q1:这是不是有点过头了?有没有人有一种秘密的方法,可以将nano中的东西计算到他的活动过程中?

Q2:我必须改变swank-js是EVALing的方式。它使用了某种像这样的黑魔法:

代码语言:javascript
复制
var Script = process.binding('evals').Script;
var evalcx = Script.runInContext;
....
this.context = Script.createContext();
for (var i in global) this.context[i] = global[i];
this.context.module = module;
this.context.require = require;
...
r = evalcx("CODECODE", this.context, "repl");

据我所知,它只是将全局变量复制到新的上下文中,并且在eval时,不会更改原始函数定义- SOOO..我只是使用简单的"eval“,它是有效的。

你对此有何评论?

Q3:为了重新计算一个函数,它需要是一个全局函数--让所有的函数定义都是全局的(类似clojure)是不是不好的做法?你认为还有其他方法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-06 03:57:13

实际上,swank.js正在变得更好,现在使用NPM在你的项目中设置swank js要容易得多。我现在正在编写文档,但是功能已经存在了!

票数 2
EN

Stack Overflow用户

发布于 2012-05-30 19:35:09

请查看此http://nodejs.org/api/vm.html

代码语言:javascript
复制
var util = require('util'),
vm = require('vm'),
sandbox = {
  animal: 'cat',
  count: 2
};

vm.runInNewContext('count += 1; name = "kitty"', sandbox, 'myfile.vm');
console.log(util.inspect(sandbox));

// { animal: 'cat', count: 3, name: 'kitty' }

应该对您有很大帮助,node的所有沙箱都使用它:)但是您可以直接使用它:)

票数 2
EN

Stack Overflow用户

发布于 2011-03-30 12:03:39

您可能会看到jsapp.us,它在沙箱中运行JS,然后将其作为一个快速的小型测试服务器向世界公开。这是jsapp.us github repo

此外,请停在#node.js上并提出问题,以获得更快的响应:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4847103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档