2017-02-02 40 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 
相关问题