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 相关文章推荐
JScript内置对象Array中元素的删除方法
Mar 08 Javascript
JavaScript原型链示例分享
Jan 26 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
Mar 03 Javascript
jquery判断复选框是否被选中的方法
Oct 16 Javascript
jquery设置表单元素为不可用的简单代码
Jul 04 Javascript
JS前端笔试题分析
Dec 19 Javascript
老生常谈combobox和combotree模糊查询
Apr 17 Javascript
Vue2.0基于vue-cli+webpack同级组件之间的通信教程(推荐)
Sep 14 Javascript
vue实现验证码按钮倒计时功能
Apr 10 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
Jul 07 Javascript
js实现3D旋转效果
Aug 18 Javascript
vue自定义右键菜单之全局实现
Apr 09 Vue.js
详解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制作静态网站的模板框架(二)
2006/10/09 PHP
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
php批量上传的实现代码
2013/06/09 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
PHP isset empty函数相关面试题及解析
2020/12/11 PHP
Jquery Select操作方法集合脚本之家特别版
2010/05/17 Javascript
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
jquery Mobile入门—外部链接切换示例代码
2013/01/08 Javascript
js中的referrer返回上一页使用介绍
2013/09/26 Javascript
js图片预加载示例
2014/04/30 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
2015/11/26 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
js实现微信/QQ直接跳转到支付宝APP打开口令领红包功能
2018/01/09 Javascript
JavaScript原型对象、构造函数和实例对象功能与用法详解
2018/08/04 Javascript
代码整洁之道(重构)
2018/10/25 Javascript
javascript单张多张图无缝滚动实例代码
2020/05/10 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
Node.js 中如何收集和解析命令行参数
2021/01/08 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
pytyon 带有重复的全排列
2013/08/13 Python
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
Python爬虫PyQuery库基本用法入门教程
2018/08/04 Python
Python笔试面试题小结
2019/09/07 Python
tensorflow 查看梯度方式
2020/02/04 Python
Python greenlet和gevent使用代码示例解析
2020/04/01 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
CSS3 Columns分列式布局方法简介
2014/05/03 HTML / CSS
戴尔美国官网:Dell
2016/08/31 全球购物
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
UNIX文件系统常用命令
2012/05/25 面试题
医学类个人求职信范文
2014/02/05 职场文书
大学生秋游活动方案
2014/02/17 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
KTV员工管理制度
2015/08/06 职场文书