2017-02-02 90 views
-1

我對JavaScript很陌生。我試圖執行一個.js文件,該文件使用jquery將其他腳本加載到節點上。我的js文件被稱爲test.js,並按如下:

require("jsdom").env("", function(err, window) { 
    if (err) { 
     console.error(err); 
     return; 
    } 
    var $ = require("jquery")(window); 
    $.getScript("./svmjs/lib/svm.js").done(function(){ 
     console.log("loaded!") 
    }).fail(function(){ 
     console.log("failed!") 
    }); 
}) 

我試圖用命令node test.js在Mac上運行它,但我得到的控制檯輸出什麼。我在這裏做錯了什麼?我的印象是,donefail它至少會輸出一些東西。但我什麼也沒得到。有任何想法嗎?

+3

只是好奇:有沒有你不只是使用'require'理由嗎? –

+0

@MikeC沒有特別的理由。這是我在搜索互聯網時獲得的解決方案。我想爲了要求,腳本必須安裝?有些腳本是我自己的腳本,我不知道如何安裝它們。 – Psidom

+1

要使用'require',文件必須存在於您的文件系統中,與您啓動文件的位置相關。無論是或者你使用'npm install'來安裝它們,就像我假設你用'jsdom'所做的那樣。你甚至需要在服務器端使用jQuery是非常罕見的。 –

回答

1

$.getScript用於加載瀏覽器端的腳本。在Node.js中,您有一個更好的工具:require。您可以直接使用require而不是使用jQuery。事實上,你不太可能需要jQuery。

變化

$.getScript("./svmjs/lib/svm.js").done(function(){ 
    console.log("loaded!") 
}).fail(function(){ 
    console.log("failed!") 
}); 

require('./svmjs.lib.svm.js'); 
-2

我假設jQuery/$是undefined。你需要用它安裝到您的項目:

npm install jquery --save

你做到這一點,添加var $ = require('jquery');到文件的頂部之後。另外,如果您不是在瀏覽器中工作並嚴格使用節點,那麼您將需要使用require而不是jQuery的getScript函數。 getScript更適合瀏覽器應用程序。

0

jQuery將可能不會在Node.js的工作,因爲它在很大程度上依賴於瀏覽器的DOM,這是不存在的Node.js(有沒有window對象或其他代碼,僅適用於瀏覽器環境)。另外,你不需要用jQuery來加載NPM包。

相反,你應該做這樣的事情:

  1. 導航到項目目錄中的命令行。如果您尚未通過運行npm init並按照說明生成package.json
  2. 通過運行npm install --save node-svm將寄存器node-svm,一個Node.js兼容版本的SVM作爲依賴關係。
  3. 運行npm install下載node-svm及其依賴關係。它們將被安裝到node_modules子目錄中。
  4. index.js或任何項目的入口點(在package.jsonmain屬性定義遵循這個例子,你應該是好去。
  5. 運行node index.js,檢查控制檯輸出。

指數。JS

var svm = require('node-svm'); 

var xor = [ 
    [[0, 0], 0], 
    [[0, 1], 1], 
    [[1, 0], 1], 
    [[1, 1], 0] 
]; 

// initialize a new predictor 
var clf = new svm.CSVC(); 

clf.train(xor).done(function() { 
    // predict things 
    xor.forEach(function(ex){ 
     var prediction = clf.predictSync(ex[0]); 
     console.log('%d XOR %d => %d', ex[0][0], ex[0][1], prediction); 
    }); 
}); 

輸出

0 XOR 0 => 0 
0 XOR 1 => 1 
1 XOR 0 => 1 
1 XOR 1 => 0 
相關問題