-1

私は興味深い場所にいます。私はフルスタックにかなり慣れていないので、自分がやろうとしていることが可能かどうかさえわかりません...だから我慢してください。RSS 経由で記事のコンテンツを収集し、コンテンツに基づいてそれらをフィルター処理できる RSS アグリゲーターを作成しようとしています。関係なく、

どの HTML ページにも添付されていない JavaScript ファイルで、JQuery を介して ajax 呼び出しを使用しています。app.js を介して次のように呼び出されます。

var GetRSS = require('./public/javascripts/GetRSS.js'); 

GetRSS ファイル内:

$.ajax({
    type: "GET",
    url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
    dataType: 'json',
    error: function(){
        alert('Unable to load feed. Incorrect path or invalid feed.');
    },
    success: function(xml){ // Save items after successful read. They will eventually go into a database. 
        values = xml.responseData.feed.entries;
        var art = new Article(values);
        var pretty = JSON.stringify(values,null,2); // This is for printing purposes (when needed).
        console.log("1");
        populateArticle(values);
    }

ただし、サーバーをスピンアップすると、次のエラーが発生します。

    $.ajax({
    ^
ReferenceError: $ is not defined

次を追加して、javascriptを含めようとします。

var jQuery = require('./jquery.js');

しかし、それは役に立ちません。繰り返しますが、現時点では HTML ファイルはありません。これは、「GetRSS」ファイルが常に実行され、入力されている DB からコンテンツをロードするだけだからです。私がオンラインで調べたところはどこでも、HTML のスクリプト タグを使用して、JQuery を JS ファイルに結び付けています。

私が試みている方法で JQuery ライブラリを利用することは可能ですか? そうでない場合、別のオプションは何ですか?

4

2 に答える 2

1

jQuery にはnpmパッケージがあります。npm install --save jqueryコマンドを使用してインストールrequireし、Node 環境にインストールできます。

DOM 操作に jQuery の代わりにCheerio を使用することもできます。NodeXMLHttpRequest環境にはオブジェクトがないため、Ajax リクエストを送信できないことに注意してください。http リクエストを作成するには、次のrequestパッケージを使用できます。

var request = require('request');
request(url, function (error, response, body) {
  if (!error && response.statusCode == 200) {
      console.log(body);
  }
});
于 2015-05-19T02:16:07.323 に答える
0

.js ファイルだけから jquery を実行することはできません。.html ページを作成し、それと GetRSS.js をファイルに含めてテストする必要があります。

例:

<html>
    <head>
        <script type='text/javascript' src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js'></script>
        <script type='text/javascript' src='/public/javascripts/GetRSS.js'></script>
    </head>
    <body onload="GetRSS()">
    </body>
</html>

変更された GetRSS.js:

function GetRSS() {
    alert('GOT THE EXTERNAL RSS!');
    $.ajax({
        type: "GET",
        url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
        dataType: 'json',
        error: function(){
            alert('Unable to load feed. Incorrect path or invalid feed.');
        },
        success: function(xml){ // Save items after successful read. They will eventually go into a database. 
            values = xml.responseData.feed.entries;
            var art = new Article(values);
            var pretty = JSON.stringify(values,null,2); // This is for printing purposes (when needed).
            console.log("1");
            alert('FOUND ENTRY!');
            populateArticle(values);
        }
    });
}

その後、問題なくコードを実行できるはずです。

于 2015-05-19T02:29:00.073 に答える