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 相关文章推荐
js 实现打印网页中定义的部分内容的代码
Apr 01 Javascript
8款非常棒的响应式jQuery 幻灯片插件推荐
Feb 02 Javascript
使用javascipt---实现二分查找法
Apr 10 Javascript
Js点击弹出下拉菜单效果实例
Aug 12 Javascript
纯JS前端实现分页代码
Jun 21 Javascript
jQuery使用正则表达式替换dom元素标签用法示例
Jan 16 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
Mar 21 Javascript
JavaScript之filter_动力节点Java学院整理
Jun 28 Javascript
浅谈angular2路由预加载策略
Oct 04 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
JavaScript对JSON数组简单排序操作示例
Jan 31 Javascript
前端 javascript 实现文件下载的示例
Nov 24 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
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
yii2带搜索功能的下拉框实例详解
2016/05/12 PHP
php使用函数pathinfo()、parse_url()和basename()解析URL
2016/11/25 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
2010/01/22 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
javascript实现window.print()去除页眉页脚
2014/12/30 Javascript
ES6新特性七:数组的扩充详解
2017/04/21 Javascript
AngularJS中controller控制器继承的使用方法
2017/11/03 Javascript
VuePress 静态网站生成方法步骤
2019/02/14 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
在python中使用正则表达式查找可嵌套字符串组
2017/10/24 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
使用Python机器学习降低静态日志噪声
2018/09/29 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
解决PyCharm同目录下导入模块会报错的问题
2018/10/13 Python
python命令行工具Click快速掌握
2019/07/04 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
如何基于Python实现电子邮件的发送
2019/12/16 Python
基于opencv实现简单画板功能
2020/08/02 Python
Django web自定义通用权限控制实现方法
2020/11/24 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
英国领先的珍珠首饰品牌:Orchira
2016/09/11 全球购物
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
JD Sports马来西亚:英国领先的运动鞋和运动服饰零售商
2018/03/13 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
SQL SERVER面试资料
2013/03/30 面试题
大学新闻系求职信
2014/06/03 职场文书
销售内勤岗位职责范本
2015/04/13 职场文书
文明旅游倡议书
2015/04/28 职场文书
我是特种兵观后感
2015/06/11 职场文书