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解析与序列化json数据(二)序列化探讨
Feb 01 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
Nov 15 Javascript
jquery选择器之内容过滤选择器详解
Jan 27 Javascript
Spring mvc 接收json对象
Dec 10 Javascript
jQuery基于扩展简单实现倒计时功能的方法
May 14 Javascript
JS得到当前时间的方法示例
Mar 24 Javascript
Vuex和前端缓存的整合策略详解
May 09 Javascript
使用JavaScript开发跨平台的桌面应用详解
Jul 27 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
May 30 jQuery
create-react-app中添加less支持的实现
Nov 15 Javascript
微信小程序地图实现展示线路
Jul 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获取当前网址及域名的实现代码
2013/06/23 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
jquery 图片轮换效果
2010/07/29 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
2013/12/04 Javascript
jQuery根据ID获取input、checkbox、radio、select的示例
2014/08/11 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
jquery实现ajax加载超时提示的方法
2016/07/23 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
python中的闭包用法实例详解
2015/05/05 Python
Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
2015/08/16 Python
详解MySQL数据类型int(M)中M的含义
2016/11/20 Python
基于Python闭包及其作用域详解
2017/08/28 Python
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
python脚本当作Linux中的服务启动实现方法
2019/06/28 Python
python用for循环求和的方法总结
2019/07/08 Python
django 类视图的使用方法详解
2019/07/24 Python
Python 获取指定文件夹下的目录和文件的实现
2019/08/30 Python
多个python文件调用logging模块报错误
2020/02/12 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
Links of London官方网站:英国标志性的珠宝品牌
2017/04/09 全球购物
英国假发网站:Hothair
2018/02/23 全球购物
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
班组长工作职责
2013/12/25 职场文书
2014年统计工作总结
2014/11/21 职场文书
医者仁心观后感
2015/06/17 职场文书
2016庆祝国庆67周年宣传语
2015/11/25 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL