我在一个有趣的地方。我对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
我尝试通过添加:
来添加javascriptvar jQuery = require('./jquery.js');
但它没有帮助。为了迭代,我目前没有HTML文件,因为它只是从数据库中加载内容,即#34; GetRSS"文件始终在运行和填充。通过使用HTML中的脚本标记,我在网上将JQuery与JS文件联系起来。
是否有可能以我正在尝试的方式使用JQuery库?如果没有,那还有什么选择呢?
答案 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);
}
});
}
然后您应该可以毫无问题地运行代码。