从 HTML 调用节点请求
Calling node request from HTML
我是node的新手,正在练习使用request
模块发出http请求。在我的脚本中,当用户按下按钮时,我希望它的回调函数发出请求,该请求从网页中获取 HTML 并对其进行过滤以获取数据数组。
我的服务器请求自行工作,但是当我尝试将其与HTML结合使用时,似乎没有任何反应。我的 HTML 看起来像这样:
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="test1.css" />
<script src = "posts.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>
<p id = "myText">Hello, this is dog</p>
<button onclick="getPosts()">Get Posts</button>
</body>
</html>
和帖子.js是这样的:
var request = require('request');
function getPosts(){
alert('Hello');
var matches = [];
request('https://www.reddit.com/r/TagPro/top/?sort=top&t=all', function (error, response, body) {
// Handle errors properly.
if (error || response.statusCode !== 200) {
return res.writeHead(error ? 500 : response.statusCode);
}
// Accumulate the matches.
var re = /tabindex="1" >(.+?)</g;
var match;
while (match = re.exec(body)) {
matches[matches.length] = match[1];
}
$("#myText").text(JSON.stringify(matches));
});
}
按下按钮时,"您好"会收到警报,但之后似乎没有任何反应。这是将节点与前端链接的正确方法还是我以错误的方式接近它?
如果你在浏览器中运行它,那么问题是你不能在没有一些额外的工具的情况下在浏览器中使用 Node 包。
如果您检查控制台,您可能会看到有关"要求"正在undefined
的内容。
您应该阅读如何使用Webpack(或Browserify)等工具使您的Node包在浏览器中可用。
如果要保持简单,请不要将 Node 请求库用于客户端(浏览器)代码。只需阅读如何使用jQuery或本机XMLHttpRequest API发出常规Ajax请求。
您可以将request
呼叫替换为类似
$.get('http://someurl.com', function (data) { // stuff });
相关文章:
- 正在销毁节点中的请求
- 如何发送作为节点请求响应函数中的代码块的响应
- 将curl转换为节点请求
- 只需添加一个'允许跨来源请求'到我的节点应用程序工作
- 节点:通过请求下载zip,zip已损坏
- 节点.js接受 POST 请求的服务器
- 带有节点.js的 curl 请求
- 跨节点服务器上的多个 API 请求维护数据
- 节点.js请求库的相对 URI
- 节点 js 将变量传递到请求回调函数中
- 使用节点请求模块的 UTF8 字符编码
- 同步数据库请求节点JS ORM
- 请求节点模块变量范围
- 如何使用 sinon.stub 编写单元测试以“请求”节点模块
- 请求节点.js后浏览器显示错误
- 连续Post请求节点JS
- 如何使用ajax请求节点js来处理js
- 如何在http传递数组.请求节点
- 检测ajax对普通请求节点js的请求
- 请求节点模块不给html