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 相关文章推荐
asp.net和asp下ACCESS的参数化查询
Jun 11 Javascript
iframe窗口高度自适应的实现方法
Jan 08 Javascript
ext中store.load跟store.reload的区别示例介绍
Jun 17 Javascript
js实现字符串转日期格式的方法
May 20 Javascript
javascript事件委托的用法及其好处简析
Apr 04 Javascript
Form表单上传文件(type="file")的使用
Aug 03 Javascript
python爬取安居客二手房网站数据(实例讲解)
Oct 19 Javascript
详解从Vue-router到html5的pushState
Jul 21 Javascript
微信小程序实现简单评论功能
Nov 28 Javascript
Vue.js下拉菜单组件使用方法详解
Oct 19 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
Apr 14 Javascript
JavaScript实现随机点名小程序
Oct 29 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 中英文混合排版中处理字符串常用的函数
2007/04/12 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
php返回json数据函数实例
2014/10/09 PHP
Linux下安装PHP MSSQL扩展教程
2014/10/24 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
Jquery之Bind方法参数传递与接收的三种方法
2014/06/24 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
javascript记录文本框内文字个数检测文字个数变化
2014/10/14 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
JQuery Mobile 弹出式登录框的实现方法
2016/05/28 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
JavaScript实现的select点菜功能示例
2017/01/16 Javascript
Web 开发中Ajax的Session 超时处理方法
2017/01/19 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
Vue shopCart 组件开发详解
2018/01/26 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
2019/04/04 Javascript
vue elementUI 表单校验功能之数组多层嵌套
2019/06/04 Javascript
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
pytorch 可视化feature map的示例代码
2019/08/20 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
keras 多任务多loss实例
2020/06/22 Python
python实现代码审查自动回复消息
2021/02/01 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
CSS3的first-child选择器实战攻略
2016/04/28 HTML / CSS
加拿大女装网上购物:Reitmans
2016/10/20 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
工艺技术员岗位职责
2015/02/04 职场文书
毕业生党员个人总结
2015/02/14 职场文书
护士求职自荐信
2015/03/25 职场文书
党员反邪教心得体会
2016/01/15 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js
php修改word的实例方法
2021/11/17 PHP
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技