2017-03-15 63 views
0

我安裝了一個npm軟件包,它有'http'作爲依賴項,所以我也安裝了它。所有由npm下載的'http'是一個package.json文件,它引用了一個不存在的index.js文件。 index.js確實從package.json中丟失了,還是我做錯了什麼?npm http軟件包只提供了一個package.json,沒有javascript文件

我使用systemJS作爲庫加載器。

+0

這真的很奇怪,看起來更像是一個錯誤,而不是問題 –

+0

'http'是Node的[標準庫](https://nodejs.org/api/http.html)的一部分。顯然,某人_also_創建了一個名稱相同的包,但您並不需要它。 – robertklep

+0

不幸的是,我安裝的包含'http'作爲依賴的軟件包在其index.js中使用了「require('http')」行,導致瀏覽器找不到它。生成404錯誤,頁面停止執行。 – ArkieCoder

回答

3

TL; DR:您無法在瀏覽器中運行服務器端模塊。

根據我的理解,您嘗試在瀏覽器內部使用服務器端JavaScript模塊,這是不行的。瀏覽器具有(非常)有限的建立網絡連接的能力,或者從本地文件系統讀取。

您引用的http依賴項是Node標準庫的一部分。所以對於運行服務器端的Node應用程序,它始終可用。

在你的情況,你認爲require('http')沒有工作(在瀏覽器中),你需要安裝一個單獨的包(this package)。

但即使如果該軟件包工作正常(它不是),它不會在瀏覽器內工作,因爲它取決於Node標準庫內的其他模塊,也不適用於一個瀏覽器。

我不知道CouchDB是否有一個REST API本身,你可以在瀏覽器中使用,但是如果沒有,你將不得不實現一個服務器端API,瀏覽器和CouchDB之間。

0

從瀏覽器中,與CouchDB對話,嘗試PouchDB庫(https://pouchdb.com/),並將URL放入構造函數中的CouchDB中。它旨在連接到本地PouchDB(CouchDB的JavaScript實現),但它們的API是相同的。或者,嘗試實際使用本地PouchDB,然後在兩個數據庫之間進行同步。

相關問題