2017-02-02 12 views
-1

JavaScriptの新機能です。そして、jqueryを使用してノードで他のスクリプトをロードする.jsファイルを実行しようとしています。私の.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上でそれを実行しようとしていますが、私は、コンソールには何も出力を得ます。私はここで間違って何をしていますか?私の印象は、doneまたはfailで、少なくとも何かを出力するということです。しかし、私は何も得られません。何か案は?

+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であると仮定しています。あなたがそれを実行した後、ファイルの先頭にvar $ = require('jquery');を追加し、

npm install jquery --save

を:あなたは使用してプロジェクトにそれをインストールする必要があります。

また、ブラウザで作業しておらず、厳密にノードを使用している場合は、jQueryのgetScript関数の代わりにrequireを使用する必要があります。 getScriptはブラウザアプリケーションに適しています。

0

にjQueryのは、おそらくそれがブラウザに大きく依存するので、Node.jsの中に存在していないDOMは、(そこにある、Node.jsのでは動作しませんwindowオブジェクトまたは他のコード、ブラウザ環境にのみネイティブ)。また、NPMパッケージのロードにjQueryは必要ありません。コマンドラインで

  1. 移動プロジェクトディレクトリへ:

    代わりに、あなたはこのような何かを行う必要があります。すでにnpm initを実行して指示に従うことで、まだ完了していない場合はpackage.jsonを生成してください。

  2. node-svm(Node.jsと互換性のあるバージョンのSVM)を、npm install --save node-svmを実行して依存関係として登録します。
  3. node-svmとその依存関係をダウンロードするにはnpm installを実行してください。それらはサブディレクトリnode_modulesにインストールされます。
  4. index.js
  5. か、どんなプロジェクトのエントリポイントは、(package.jsonmainプロパティで定義されている。この例に従うと、あなたが行くように良いことがあります。
  6. 実行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 
関連する問題