-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”文件始终运行和填充的数据库中加载内容。我在网上看到的所有地方都通过使用 HTML 中的脚本标签将 JQuery 与 JS 文件联系起来。

是否可以以我尝试的方式使用 JQuery 库?如果没有,还有什么选择?

4

2 回答 2

1

jQuery 有一个npm. 您可以使用npm install --save jquery命令安装它,并将require其安装在您的 Node 环境中。

请注意,您也可以使用cheerio代替jQuery 进行DOM 操作,并且由于Node 环境中没有XMLHttpRequest对象,您不能发送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 回答