nodejs,javascript
您的位置: 主页 > web前端文章 > 前端其他文章 >

Node.js请求模块【访问量:174】

目前,我们的Web应用程序倾向于与其他服务进行大量集成。使用Node / JavaScript是处理这种应用程序的最流行的语言之一。无论哪种方式,您都会发出很多HTTP请求,这意味着您需要一个坚实的模块才能使代码更加容易编写。 所述请求模块是迄今为止最流行的(非标准)节点包用于制造HTTP请求。实际上,它实际上只是Node内置http模块的一个包装,所以你可以自己实现所有相同的功能http,但request只是使它变得更容易。

制作HTTP请求虽然有很多选项可供您使用request(本文将介绍其中的许多选项),但使用起来也相当简单。这个库的“hello world”示例与传递URL和回调一样简单:

const request = require('request');

request('http://stackabuse.com', function(err, res, body) {
console.log(body);
});

上面的代码向stackabuse.com提交一个HTTP GET请求,然后将返回的HTML打印到屏幕上。这种类型的请求适用于任何HTTP端点,无论是返回HTML,JSON,图像还是其他任何内容。 第一个参数request可以是URL字符串或选项对象。以下是您在应用程序中遇到的一些更常见的选项: url:HTTP请求的目标网址 method:要使用的HTTP方法(GET,POST,DELETE等) headers:在请求中设置HTTP标头(键值)的对象 form:包含键值表单数据的对象

const request = require('request');

const options = {
url: 'https://www.reddit.com/r/funny.json',
method: 'GET',
headers: {
'Accept': 'application/json',
'Accept-Charset': 'utf-8',
'User-Agent': 'my-reddit-client'
}
};

request(options, function(err, res, body) {
let json = JSON.parse(body);
console.log(json);
});

使用该options对象,该请求使用GET方法直接从Reddit获取JSON数据,该body字段在字段中作为字符串返回。从这里开始,您可以JSON.parse将数据用作普通的JavaScript对象。 这种相同的请求格式可以用于任何类型的HTTP方法,无论是DELETE,PUT,POST还是OPTIONS。尽管并非所有方法都完全相同。有些像POST方法一样可以在请求中包含数据。这些数据可以通过几种方式发送,其中一些是: body:A Buffer,String或Stream对象(如果json选项设置为可以是对象true) form:键值对数据的一个对象(我们稍后会介绍这一点) multipart:可以包含自己的标题和主体属性的对象数组 每个都满足不同的需求(并且还有更多的发送数据的方式,可以在请求的自述文件的这一部分找到)。但是,该request模块确实包含了一些便于使用的便利方法,因此请务必阅读完整的文档以避免使代码变得更加困难。 说到辅助方法,调用不同HTTP方法的更简洁的方法是使用提供的相应帮助方法。以下是一些比较常用的: request.get(options, callback) request.post(options, callback) request.head(options, callback) request.delete(options, callback)

2018-04-04
匿名评论