node.js - Nodejs函数来检查网站是否正常工作
问题描述
我正在尝试创建一个函数来检查给定的 URL 是否有效。这是我到目前为止所做的:
function checkWebsite(url) {
http
.get(url, function(res) {
console.log(url, res.statusCode);
return res.statusCode === 200;
})
.on("error", function(e) {
return false;
});
}
我想等到 http get 完成,然后根据状态代码返回 true 或 false 并作为回调函数中的响应,我不知道如何将它返回到调用它的位置。示例调用:
function test() {
if (checkWebsite("https://stackoverflow.com/")) {
return "https://stackoverflow.com/";
}
}
我想在这个 if 语句中得到真或假,但由于状态代码在回调函数中,我不知道如何返回它。
解决方案
我会给你一个工作片段,因为你无法从链接的答案中弄清楚,也许它会帮助你更多:
var http = require('http');
var https = require('https');
test();
function checkWebsite(url, callback) {
https
.get(url, function(res) {
console.log(url, res.statusCode);
return callback(res.statusCode === 200);
})
.on("error", function(e) {
return callback(false);
});
}
function test(){
checkWebsite("https://stackoverflow.com/", function(check){
console.log(check); //true
})
}
承诺:
var http = require('http');
var https = require('https');
test();
function checkWebsite(url) {
return new Promise((resolve, reject) => {
https
.get(url, function(res) {
console.log(url, res.statusCode);
resolve(res.statusCode === 200);
})
.on("error", function(e) {
resolve(false);
});
})
}
async function test(){
var check = await checkWebsite("https://stackoverflow.com/");
console.log(check); //true
}
推荐阅读
- datetime - 在 Flutter 中,我得到了一个 DateTime [yyyy-MM-dd 00:00:00.000] 我如何才能将其仅转换为 [yyyy-MM-dd]?
- python - 在“uv”模式下绘制时获取箭袋箭头(尖端和底部)的坐标
- google-apps-script - 有没有办法将 Gmail 附件保存为 MP4?
- flutter - 带有 onPressed 索引的不同页面上的轮播图像
- c - C 编译器使用 Cray 上 Fortran 模块中定义的变量
- python - 使用 Ajax 模型对象时未保存
- python - 当我们使用 transform 得到相同的输出时,为什么要使用 fit_transform 方法
- testing - 测试 Amazon Quicksight 实施
- python - 如何解析具有多个相同 json 键的响应?
- linux - 使用 grep 找到一个文件夹,然后重命名它