Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用


Posted in Javascript onNovember 20, 2019

在node.js中只需要几行代码就可以发送http请求,通过检查statusCode可以判断该网址服务是否有效。

如下代码:

var http = require('http')
var checkExists = function(urlPath, cb) {
 var options = { host: '192.168.2.101', port: 8064, path: encodeURI(urlPath)}
 var req = http.request(options, function(r) {
 cb && cb(r.statusCode == 200);
 })
 req.end()
}

以上代码检查相对网址是否可用,需手动修改服务器地址和端口,使用以下代码可以检查完整地址的可用性。

var http = require('http')
var url = require('url')
var checkUrlExists = function (Url, cb) {
 var options = {
 //method: 'HEAD',
 host: url.parse(Url).host,
 port: 80,
 path: url.parse(Url).pathname
 };
 var req = http.request(options, function (r) {
 cb && cb( r.statusCode == 200);
 });
 req.end();
}

搭配 fs 模块,可以指解析文件中的地址是否可用,完整代码如下:

var http = require('http')
var url = require('url')
var fs = require('fs')
/*
检查完整网址是否可用
*/
var checkUrlExists = function (Url, cb) {
 var options = {
 //method: 'HEAD',
 host: url.parse(Url).host,
 port: 80,
 path: url.parse(Url).pathname
 };
 var req = http.request(options, function (r) {
 cb && cb( r.statusCode == 200);
 });
 req.end();
}
/*
检查相对网址是否可用,需修改服务器地址和端口
*/
var checkExists = function(urlPath, cb) {
 var options = { host: '192.168.2.101', port: 8064, path: encodeURI(urlPath)}
 var req = http.request(options, function(r) {
 cb && cb(r.statusCode == 200);
 })
 req.end()
}
var checkFile = function(filePath) {
 fs.readFile(filePath, function(err, data) {
 if (err) {
 console.log(err)
 return
 }
 var lines = data.toString().split(/[\r\n]+/)
 var curr = 0
 var urlPath
 var checkNext = function(exist) {
 if (curr > lines.length - 1) {
 console.log('end')
 return
 }
 //console.log(curr, 'exist', exist, urlPath)
 if (!exist) {
 console.log(curr, 'exist', exist, urlPath)
 }
 if (curr >= lines.lines) {
 console.log('end')
 return
 }
 urlPath = lines[curr++]
 checkExists(urlPath, checkNext)
 }
 checkNext()
 })
}
checkFile('./visit.csv')

总结

以上所述是小编给大家介绍的Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
JavaScript打字小游戏代码
Dec 26 Javascript
js调试系列 控制台命令行API使用方法
Jun 18 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
Sep 03 Javascript
JavaScript中textRange对象使用方法小结
Mar 24 Javascript
老生常谈Javascript中的原型和this指针
Oct 09 Javascript
AngularJS 霸道的过滤器小结
Apr 26 Javascript
javascript 中select框触发事件过程的分析
Aug 01 Javascript
JavaScript实现的浏览器下载文件的方法
Aug 09 Javascript
Vuex实现计数器以及列表展示效果
Mar 10 Javascript
在element-ui的select下拉框加上滚动加载
Apr 18 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
Aug 28 Javascript
JavaScript实现抖音罗盘时钟
Oct 11 Javascript
详解Nuxt.js 实战集锦
Nov 19 #Javascript
javascript的delete运算符知识点总结
Nov 19 #Javascript
100行代码实现vue表单校验功能(小白自编)
Nov 19 #Javascript
Angular 多级路由实现登录页面跳转(小白教程)
Nov 19 #Javascript
nodemon实现Typescript项目热更新的示例代码
Nov 19 #Javascript
vue的三种图片引入方式代码实例
Nov 19 #Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
Nov 19 #Javascript
You might like
php smarty的预保留变量总结
2008/12/04 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
thinkPHP实现瀑布流的方法
2014/11/29 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
Laravel 使用查询构造器配合原生sql语句查询的例子
2019/10/12 PHP
jQuery实现企业网站横幅焦点图切换功能实例
2015/04/30 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
2017/03/01 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
Express + Node.js实现登录拦截器的实例代码
2017/07/01 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
如何让node运行es6模块文件及其原理详解
2018/12/11 Javascript
js 动态校验开始结束时间的实现代码
2020/05/25 Javascript
[01:00:26]Ti4主赛事胜者组第一天 EG vs NEWBEE 1
2014/07/19 DOTA
浅谈python为什么不需要三目运算符和switch
2016/06/17 Python
python 将json数据提取转化为txt的方法
2018/10/26 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
Python实现不规则图形填充的思路
2020/02/02 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
教师岗位职责
2013/11/17 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
Python编写冷笑话生成器
2022/04/20 Python