2012-03-16 29 views
0

我已經爲我的客戶端寫了一個js庫,以便將命令直接發送到rmi'ish服務器。它工作的很好,但現在我必須編寫一些服務器代碼來連接到同一臺服務器。這就是爲什麼我想嘗試Node.js.然而,我有一些困難在理解這些概念。如何在nodejs中使用客戶端js代碼

我希望我的圖書館能夠在brouwser(chrome,firefox和ie)上工作,但也可以在Node.js上使用(使用小功能)。這樣我就不必保持2個幾乎相同的代碼。

如何在布爾服務器系統上聲明一個名稱空間並填充所有功能。在node.js中,我使用require加載我的文件,並將其輸出的變量填充到變量中。

例如'./m4a.structure.js'建立了一個全局的m4a.structure。和'./m4a.cmd.js'使用該結構來生成一堆方法(作爲代理將stuf發送到服務器)。最後有一個'./jquery.m4a.initialize.js',它將這些東西綁定到jquery上來發送請求並處理現金和類似的東西。

前2個文件包含的信息仍然在迅速變化(每週到每週),所以我希望它們在瀏覽器和Node.js deamon位上保持可用狀態。關閉課程的最後一個文件並不是那麼大,而是瀏覽器的具體內容,因此我不介意(甚至期望)如果我無法移植它。

我希望已經清楚,你可以幫我一下。

回答

4

構建可用作例如模塊的最簡單的方式。使Node.js的模塊和瀏覽器是這樣的:

var Foo = function() { 
}; 

Foo.prototype.bar = function() { 
}; 

if(typeof exports !== 'undefined') { 
    // Node.js or similar 
    exports.Foo = Foo; 
} else { 
    // Browser -- this is window 
    this.Foo = Foo; 
} 
+1

阿迪·奧斯馬尼寫了[偉大的文章(http://addyosmani.com/writing-modular-js/)有關的所有不同的裝載框架。 – 2012-03-16 11:52:17

+0

謝謝.. damm這個js有時候很好。 :D – Bram 2012-03-16 12:04:21

+0

在節點中,'this'指向模塊,因此您可以使用與瀏覽器相同的'this.Foo = Foo;'導出該函數。 – 2015-01-05 07:54:15

相關問題