编写NodeJs脚本实现接口请求

简介: 编写NodeJs脚本实现接口请求

要编写运行脚本,需要先搭建开发环境

环境搭建

nodeJs脚本运行,当然需要先安装nodejs环境

官方地址在这里: nodejs官网

打开官网地址,可以看到下面一句话:

Node.js® is an open-source, cross-platform JavaScript runtime environment.

在打开的页面,可以直接下载最新的nodejs版本;
在这里插入图片描述
也可以在下载页面, 来下载其他版本;

下载后直接安装即可;安装完之后就可以使用npm命令了;

多版本控制
nodejs的版本很多,实际开发中,会发现不同的项目使用的nodejs的版本不一样,所以可能需要安装多个版本;

找到了一个node多版本控制的软件nvm; 下载地址

  • 下载一下 nvm-setup.zip 之后解压出来一个 nvm-setup.exe 文件,双击安装;
  • 安装完成后,打开 cmd 执行命令nvm -v 测试是否成功;
  • 查看可安装版本 ,执行命令:nvm list available
  • 安装指定版本:nvm install 版本号; nvm install 16.14.0 =>安装nodejs 16.14.0

设置代理和镜像

如果nvm安装nodejs太慢.可以设置国内的代理地址,可以加快速度:

打开nvm安装目录,找到settings.txt文件,在最后添加一下参数
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/

npm下载依赖包,默认的地址是国外的地址,有可能也会慢,可以设置一下镜像;

打开CMD,输入如下命令即可:

npm config get registry
npm config set registry https://registry.npm.taobao.org/

编写脚本

工具推荐使用vscode,比较方便;

  • 实现一个打开指定网页的脚本
var open = require('open'); //opn child_process都可以
open('https://***.cn/', 'chrome');

以上两行代码,就可以实现;

不过,第一行代码中的require中的open是需要安装的;

在vscode中打开新终端,输入命令:

npm install open

也可以打开CMD,输入以上命令,都可以安装依赖;

运行脚本

在vscode中的新终端,输入命令:

node 脚本名称

或者打开CMD,进入脚本所在目录,输入以上命令;

就可以运行以上脚本;

编写NodeJs脚本实现接口请求

  • 写一个脚本请求指定url获取html并解析:

主要用到的库是https和cheerio;

http是发起请求使用,是内置插件;
cheerio是一个第三方插件,该插件可以将网页中的数据拿出来,像jquery一样操作dom,
安装命令: npm install cheerio

const https = require('http'); //请求发起
 
//解析html 一个服务端操作DOM的库,简直就是服务端的jquery。
const cheerio = require('cheerio');

const gethtml = function(){
    let url = 'https://www.baidu.com/';
    https.get(url,function(res){
      // 分段返回的 自己拼接
      let html = '';
      // 有数据产生的时候 拼接
      res.on('data',function(chunk){
          html += chunk;
      })
      // 拼接完成
      res.on('end',function(){
          //解析html
         //console.log(html)
         const $ = cheerio.load(html);
         console.log($('.s-top-left').text())
      })
    })
  }
  
  gethtml()
  • 写一个脚本请求指定接口,获取json数据;

const http = require('http');//由于http.get是Node的http模块   所以第一件事情当然是引入http模块啦~

http.get('http://httpbin.org/get', (res) => {//res是请求后端给你的数据

  const { statusCode } = res;//获取请求的状态码

  const contentType = res.headers['content-type'];//获取请求类型

  let error;
  if (statusCode !== 200) {//如果请求不成功
    error = new Error('请求失败\n' +
      `状态码: ${statusCode}`); //报错抛出状态码
  } else if (!/^application\/json/.test(contentType)) {//验证请求数据类型是否为json数据类型   json的content-type :'content-type':'application/json'
    error = new Error('无效的 content-type.\n' +//再次报错
      `期望的是 application/json 但接收到的是 ${contentType}`);
  }
    //请求成功
  res.setEncoding('utf8');//字符编码
  let rawData = '';
  res.on('data', (chunk) => { rawData += chunk; });//通过data事件拼接数据流得到数据
  res.on('end', () => {//end表示获取数据结束了
    try {  //捕获错误信息
      console.log(rawData);
    } catch (e) {
      console.error(e.message);
    }
  });
}).on('error', (e) => {
  console.error(`出现错误: ${e.message}`);
});
相关文章
|
4月前
|
存储 JavaScript 中间件
❤Nodejs 第十二章(图片存储接口-本地)
【4月更文挑战第12天】在Node.js第十二章中,主要讲解了错误中间件的编写和multer中间件的使用。错误中间件需置于所有路由之后,用于捕获并处理错误,防止接口崩溃。示例代码展示了如何处理token解析失败的错误。接着介绍了multer,它是处理multipart/form-data数据,尤其是用于文件上传的中间件。通过`yarn add --save multer`安装,并引入到项目中。最终,成功实现了图片上传并返回了可访问的图片路径。
108 2
|
4月前
|
JSON 缓存 JavaScript
❤Nodejs 第十章(用户信息token认证和登录接口开发)
【4月更文挑战第10天】本文介绍了Node.js中实现用户信息token认证和登录接口的步骤。express-jwt的使用,接着创建基本的Express服务器,然后导入并使用jsonwebtoken和express-jwt。设置一个密钥,并定义一个中间件处理token验证。示例展示了登录接口的实现。遇到登录判断失效的问题后,对判断条件进行了优化。
145 2
|
4月前
|
JavaScript
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
Node.js【GET/POST请求、http模块、路由、创建客户端、作为中间层、文件系统模块】(二)-全面详解(学习总结---从入门到深化)
41 0
|
4月前
|
消息中间件 Web App开发 JavaScript
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
Node.js【简介、安装、运行 Node.js 脚本、事件循环、ES6 作业队列、Buffer(缓冲区)、Stream(流)】(一)-全面详解(学习总结---从入门到深化)
117 0
|
2月前
|
JSON JavaScript API
「AIGC」NodeJs使用openai流式请求与非流式请求
本文档是关于使用Node.js与OpenAI API交互的教程,涵盖了非流式和流式请求。非流式请求示例展示了如何一次性返回所有数据,适用于兼容性但可能需要较长时间。流式请求则演示了如何即时响应数据,提高交互体验,但可能不适用于所有系统。代码示例使用了axios库和http模块,展示了如何处理数据流。
235 0
|
21天前
|
JavaScript Serverless Linux
函数计算产品使用问题之遇到Node.js环境下的请求日志没有正常输出时,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
前端开发 JavaScript
【node写接口】 通过node 快速搭建一个服务器、get请求、post请求 小白入门
【node写接口】 通过node 快速搭建一个服务器、get请求、post请求 小白入门
64 4
|
2月前
|
前端开发 jenkins 持续交付
不是Jenkins玩不起,而是脚本更有性价比,在1Panel中使用Node搭建前端自动化
不是Jenkins玩不起,而是脚本更有性价比,在1Panel中使用Node搭建前端自动化
94 2
|
3月前
|
JavaScript
Node.js GET/POST请求
Node.js GET/POST请求
17 1
|
3月前
|
SQL JavaScript 前端开发
简单用Nodejs + express 编写接口
【6月更文挑战第3天】该文介绍了如何在Node.js和Express中创建GET和POST接口。首先,简要提到了准备工作,建议查阅上一篇文章。接着展示了GET接口的示例,说明可以直接在浏览器中请求。然后,详细解释了POST接口的步骤,包括引入Express模块、设置路由处理程序、解析请求体及处理请求。最后,强调了编写接口时应注意错误处理、安全性、中间件使用、路由组织、日志记录、性能优化和测试等关键点。作者以肥晨的身份结尾,鼓励关注其分享的前端学习资料和技术动态。
178 1