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


发布者 ourjs  发布时间 1574080605576
关键字 Node.JS 

在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')

 

 









 热门文章 - 分享最多
  1. 用纯css改变下拉列表select框的默认样式
  2. Node初学者入门,一本全面的NodeJS教程
  3. 用纯CSS实现的箭头
  4. Mongoose学习参考文档——基础篇
  5. 为什么使用"use strict"可以节约你的时间
  6. 5个经典的前端面试问题
  7. 我们抛弃了AngularJS:单页面应用的5大缺陷
  8. Python不可维护?终于把一个8万行的Python程序用Java重写了
  9. CSS3实现的响应式字体:自适应视图窗口大小的新单位
  10. 将BootstrapJS和AngularJS结合使用以及为什么不用jQuery
  11. 在nodejs中使用Redis缓存和查询数据及Session持久化(Express)

 相关阅读
  1. nodejs视频教程集合附带源码和笔记
  2. 用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建以太坊电商平台DApp实战教程
  3. KoaHub全栈移动商城(微信端+pc端),node.js开发
  4. KoaHub全栈商城系统正式上线!
  5. nodejs下一代开源商城系统 立即下载
  6. KoaHub平台基于Node.js开发的Koa的连接MongoDB插件代码详情
  7. KoaHub平台基于Node.js开发的Koa的rewrite and index support插件代码详情
  8. KoaHub平台基于Node.js开发的Koa的get/set session插件代码详情
  9. KoaHub平台基于Node.js开发的Koa的模板系统handlebars插件代码详情
  10. KoaHub平台基于Node.js开发的Koa加载程序代码信息详情

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA