簡體   English   中英

在瀏覽器中運行 node.js 的問題

[英]Problems running node.js in browser

我正在嘗試使用 node.js 功能運行我的瀏覽器的應用程序。 我檢查了終端,我的包含 node.js 函數的 javascript 文件運行良好。 但是,當我運行連接到 javascript 文件的 html 文件時,瀏覽器返回一個錯誤,指出 require 函數未定義。 我理解這是因為瀏覽器無法單獨運行 node.js

我試圖運行的 node.js 代碼是訪問 Watson 視覺識別 api:

var watson = require('./node_modules/watson-developer-cloud');

watson.visual_recognition({
    username : '49f5d504-9387-45c6-9fda-9b58a9afc209',
    password : 'IITqAn0VPaFr',
    version : 'v2-beta',
    version_date : '2015-12-02'
}).listClassifiers({}, function(err, response) {
    if (err){
        console.log(err);
    } else {
        console.log(JSON.stringify(response, null, 2));
    }
});

我知道我擁有所有必需的文件,因為該文件在終端中運行。 因此,我繼續包括:

<script src ="https://cdn.socket.io/socket.io-1.4.5.js"></script>

在連接我的 javascript 文件之前在我的 index.html 中。

但是,我的 javascript 文件仍然返回未定義 require 函數的相同錯誤。 難道我做錯了什么? 有什么方法可以在具有 node.js 的瀏覽器中運行這個 javascript 文件,但特別是不使用 browserify(這在過去導致了一些目錄問題)?

雖然 Node 和瀏覽器都運行 JavaScript (ECMAScript),但這並不意味着環境是相同的。

特別是,瀏覽器中有許多 API 和全局變量在 node(文檔、窗口等)中不可用,而 Node 中的其他全局變量和 API 在瀏覽器中不可用(require 等)。 )

為了執行使用 Node 特定全局變量(如require() ,需要為您定義和填充它們。 這正是 webpack、browserify 或 systemjs 之類的東西為你做的。 即便如此,您也需要確保引入的模塊將在瀏覽器中運行。

瀏覽器沒有(還)任何像 nodejs 這樣的內置模塊系統。 如果你想使用模塊,比如在 node 中,可以考慮browserifyrequirejs庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM