Node.js是一个基于Chrome V8 JavaScript引擎的开源、跨平台的Javascript运行环境,使JavaScript可以脱离浏览器运行。它提供了很多强大的模块,使Web开发更轻松。其中,request模块是一个使用最广泛的HTTP模块,可以用来发送HTTP/HTTPS请求。
一、安装request
你可以在你的项目目录下面使用如下命令安装request:
npm install request
二、使用request
在你的脚本中引用request模块:
var request = require('request');
request() 方法是这个模块最常用的方法,下面是一个简单的request()请求:
request('https://www.baidu.com', function (error, response, body) { console.log('error:', error); //打印错误信息 console.log('statusCode:', response.statusCode); //打印响应状态码 console.log('body:', body); //打印HTML正文 });
这里需要注意的是,request()方法第一个参数为请求URL,第二个参数为回调函数。回调函数有三个参数,分别是请求出错时的错误信息,响应对象和响应内容的字符串形式。
请求头
你也可以使用 request() 方法传递一些请求头。
var options = { url: 'https://api.github.com/repos/request/request', headers: { 'User-Agent': 'request' } }; function callback(error, response, body) { if (!error && response.statusCode == 200) { const info = JSON.parse(body); console.log(info.stargazers_count + " Stars"); console.log(info.forks_count + " Forks"); } } request(options, callback);
在这个例子中,我们在请求头部传递了一个User-Agent
头,以表示请求的来源。
POST请求
向服务器发送参数,使用HTTP的POST方法是最常见的请求。request()方法也支持POST请求。
var request = require('request'); request.post('http://service.com/upload', {form:{key:'value'}}, function(error, response, body) { //上传文件或者其他操作 });
使用request()方法发送POST请求时,第一个参数表示请求的URL,而第二个参数则为POST请求时需要发送的参数。在这里,我们可以看到我们向服务器发送了一个键值(key-value)对,变量名为key
,变量值为value
。
GET请求
GET请求是另一个简单请求的例子。
var request = require('request'); request.get('http://www.baidu.com', function(error, response, body) { console.log(body); });
在GET请求中,我们可以简单地传递请求的URL,然后使用回调函数获取响应正文。
三、总结
在这篇文章中,我们介绍了Node.js模块之一的request,在Web开发中发送HTTP/HTTPS请求是一项非常重要的任务。使用request模块,可以轻松地向服务器发送请求以及获取响应。通过本篇文章,你可以学习如何在Node.js脚本中安装使用request模块,并了解如何构建和发送基本的GET、POST请求和请求头。