2011-04-18 92 views
3

我正在使用節點,並希望在我的應用程序中包含存儲在遠程服務器上的模塊。NodeJS - 使用遠程模塊?

I.E.我想沿着這些線做些什麼(它不工作):

var remoteMod = require('http:// ... url到我的遠程模塊 ...');

作爲一種解決方法,我會很高興只抓住遠程文件的內容,並解析出我需要的東西,如果這很容易 - 儘管我沒有太多的運氣。我有一種感覺,我在這裏錯過了一些基本的東西(因爲我是一個有節點的相對初學者),但是在淘汰文檔之後無法做出任何事情。

編輯:

我同時擁有本地和遠程服務器,所以我不能在這裏安全問題的關注。

如果我只是想抓取文件內容,我想這樣做同步。使用require('http')。get可以讓我得到這個文件,但是在回調中工作對於我所要做的並不是最佳的。我真的在尋找類似於php的fopen函數的東西 - 如果這甚至可以用於節點。

回答

2

你可以抓住遠程文件只是通過HTTP http://nodejs.org/docs/v0.4.6/api/http.html#http.get

require('http').get({host: 'www.example.com', path: '/mystaticfile.txt'}, function(res) { 
//do something 
}); 
+0

謝謝,你碰巧知道我可以同步獲取文件內容的方式嗎? – jtrussell 2011-04-18 16:06:09

+0

通過http?我不這麼認爲。您可以將其餘代碼放入關閉函數中。 – Emmerman 2011-04-19 07:12:13

+0

試試這個,而不是內置的http模塊。我不能擔保它,但它看起來像你需要什麼https://github.com/dhruvbird/http-sync 此外,你可能更好的做它異步。 – CharlesTWall3 2014-05-06 04:28:17

5

從另一臺服務器加載的運行代碼非常危險。如果有人可以修改此代碼會怎麼樣?這個人將能夠在你的服務器上運行他想要的所有代碼。

+1

謝謝 - 我明白了這裏的危險,因爲它發生,雖然我自己的遠程服務器也是如此。 – jtrussell 2011-04-18 15:53:36

+0

也許你應該通過sftp將包含你的模塊的文件夾掛載到你的文件系統中;)這會更加安全和方便! – 2011-04-18 15:57:58

+0

我應該多給你一點見解,我想要做什麼...我想獲得一些存儲在遠程數據庫中的數據,但我也希望這些數據能夠被(非js)腳本處理已經生活在該服務器上(IE我不想有兩種不同語言的腳本需要維護)。如果我可以向加載了一些數據的遠程服務器發送Web請求,處理它,然後構建併發回我的自定義模塊文件,那將會很好。只需在本地安裝文件將不會有多大幫助,因爲我需要遠程服務器爲每個Web請求首先構建它。 – jtrussell 2011-04-18 16:25:46