前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >编写NodeJs脚本实现接口请求

编写NodeJs脚本实现接口请求

原创
作者头像
JQ实验室
发布2023-03-03 11:13:27
1.6K0
发布2023-03-03 11:13:27
举报
文章被收录于专栏:实用技术

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

环境搭建

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,比较方便;

  • 实现一个打开指定网页的脚本
代码语言:javascript
复制
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

代码语言:javascript
复制
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数据;
代码语言:javascript
复制
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}`);
});

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境搭建
    • 多版本控制
    • 设置代理和镜像
    • 编写脚本
    • 运行脚本
    • 编写NodeJs脚本实现接口请求
    相关产品与服务
    命令行工具
    腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档