2013-01-22 73 views
2

我正在使用Nodejs編寫一些示例程序。我面臨的問題是從Nodejs中調用JavaScript文件。假設我有3個.js文件:A.js,B.js,C.js. A.js寫入節點。 B.js和C.js是用純Javascript編寫的。現在我需要從A.js中調用B.js中的函數b()。所以我eval()B.js並導出方法b()。這工作正常。但問題是當我的B.js中的函數b()調用C.js中的函數c()時。Node.js:調用純Javascript函數

B.js: 

function b() 
{ 
    console.log('In function b'); 
    c(); 
} 

C.js: 

function c() 
{ 
    console.log('In function c'); 
} 

只是添加到問題。我在B.js的全局空間中有var var abc:var abc。 在C.js中,我可以參考它:var a = abc;如何確保我的C.js可以訪問我的變量abc?

我如何確保依賴性得到解決?任何幫助,將不勝感激。謝謝!!!

+0

什麼節點和 「普通的JavaScript」 之間的區別? – Bergi

+0

不要使用'eval()' –

+0

'pure javascript'是什麼意思? Nodejs **是純粹的JavaScript,等等。你的意思是這些函數試圖訪問瀏覽器的'window'對象嗎? –

回答

2

您應該在Node.js中使用modules。非常簡單,只需閱讀文檔。

B.js

var c = require('./C'); 

function b() { 
    console.log('In function b'); 
    c(); 
} 

C.js

module.exports = function() { 
    console.log('In function c'); 
} 
+1

我的B.js和C.js是用Javascript編寫的,而不是在Node中編寫的。而Javascript不知道需求和module.exports – user1999645

+0

然後,你可以使用http://requirejs.org/作爲module.exports的替代品,並要求 – NiLL

+0

你可以解釋一個例子嗎?這將有所幫助。謝謝。 – user1999645