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

时间:2015-05-19 02:03:13

标签: javascript jquery ajax angular-fullstack

我在一个有趣的地方。我对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文件,因为它只是从数据库中加载内容,即#34; GetRSS"文件始终在运行和填充。通过使用HTML中的脚本标记,我在网上将JQuery与JS文件联系起来。

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

2 个答案:

答案 0 :(得分:1)

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

请注意,您还可以使用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);
  }
});

答案 1 :(得分: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);
        }
    });
}

然后您应该可以毫无问题地运行代码。