2011-05-29 32 views
2

有些人可能(也可能不)知道我的framework。它的名字是Ally,我绝对喜欢使用它。更改节点中的主要环境

最近我一直在做Node.js中的一些东西。今天我决定将它用作我的HTTP服务器,这样我就可以做服务器端JS(以PHP的方式)。

为此,我开始了一个项目,我打电话给Trailer。在处理它时,我发现自己需要Ally的一个功能,Object:deploy。它的作用是相当多这样的:

var a = { a: 'a' }; 
a.deploy({ b: 'b' }); 
a.a; // 'a' 
a.b; // 'b' 

所以我装它..

var Ally = require('./Ally.js'); 

..但是当我尝试使用它,它说,这是不确定的。

经过一番挖掘,我发现Object:deploy是在Ally.js文件中定义的,但是它对全局构造函数所做的更改不会保留。

如何对Ally.js文件中的全局变量进行更改应用于需要它的文件中的全局变量?

注意:如果通过源代码查看可能有所帮助,则盟友与上述链接相关联,并且在我获得可用版本时,如果有人想要使用它,则挂接链接。

+0

我不明白你在做什么a.deploy位 – jcolebrand 2011-05-29 01:40:37

+0

在预告片中?我还没有犯下,因为它不起作用。如果你在Ally中谈论它,则在第176行中定义。 – Kayla 2011-05-29 02:18:24

+0

在预告片中。我想看到被打破的路线。只要他们被评论,检查打破构建仍然没问题。继续推动它,以便我们可以看到整个代码块的外观。 – jcolebrand 2011-05-29 02:20:57

回答

2

this discussion是否相关?这里的关键点似乎是:

  1. require不会延长全局对象,如果你在shell工作

  2. 这也是不行的时候NODE_MODULE_CONTEXTS = 1,不过这似乎并不作为脚本的默认值。

所以,如果你想在交互式shell中运行这个,那可能是问题所在。另见this SO question

+0

令人难以置信的相关! :D如果我要运行它在JS文件,而不是壳,扩展应该坚持? – Kayla 2011-05-29 03:32:20

+0

刚刚检查。它在从文件运行它时起作用,而不是从命令行运行。 – Kayla 2011-05-29 03:35:42