我可以在后端应用程序中使用 JQuery 库吗?

Can I utilize the JQuery library in a back-end app?

我在一个有趣的地方。我是 Full-Stack 的新手,所以我什至不确定我正在尝试做的事情是否可行……所以请耐心等待。我正在尝试创建一个 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 库?如果没有,还有什么选择?

jQuery 有一个 npm package。您可以使用 npm install --save jquery 命令和 require 在您的 Node 环境中安装它。

注意你也可以使用cheerio instead of jQuery for DOM manipulations and since there is no XMLHttpRequest object on the Node environment you can't send an Ajax request. For making http requests you can use the request包:

var request = require('request');
request(url, function (error, response, body) {
  if (!error && response.statusCode == 200) {
      console.log(body);
  }
});

您不能仅从 .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);
        }
    });
}

然后您应该能够 运行 您的代码没有问题。