Javascript 在Node.js中创建网站正常运行时间监视器
我想使用NodeJS和MongoDB创建一个正常运行时间监视器。我想在NodeJS中运行cron作业,并将数据存储到MongoDB中。如果网站响应状态代码不等于Javascript 在Node.js中创建网站正常运行时间监视器,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我想使用NodeJS和MongoDB创建一个正常运行时间监视器。我想在NodeJS中运行cron作业,并将数据存储到MongoDB中。如果网站响应状态代码不等于200,则它将保存在数据库中。我想创建一个这样的数据库条目 url : http://www.google.com status_code : 500 start_time :- start time end_time :- end time 我可以运行cron作业,但不确定如何在数据库中保存停机时间。因此,我不想将每个响应都存储到数据
200
,则它将保存在数据库中。我想创建一个这样的数据库条目
url : http://www.google.com
status_code : 500
start_time :- start time
end_time :- end time
我可以运行cron作业,但不确定如何在数据库中保存停机时间。因此,我不想将每个响应都存储到数据库中。只有当响应状态代码不是200
时,它才会开始跟踪(start\u time
)URL,并将网站返回200
的时间保留为end\u time
cron.js
:-
var async=require('async');
const Entry = require('../models/health.model.js');
var https = require('https');
var request = require('request');
module.exports = function getHttpsRequests () {
Entry.find({},function(err,entrys){
console.log(err);
if(!err && entrys){
async.each(entrys,function(entry,callback){
request(entry.url, function (error, response, body) {
entry.statuscheck=response.statusCode;
entry.save();
callback();
});
},function (error) {
});
}
});
}
const mongoose = require('mongoose');
const EntrySchema = mongoose.Schema({
url: String,
statuscheck: String
}, {
timestamps: true
});
module.exports = mongoose.model('Entry', EntrySchema);
health.model.js
:-
var async=require('async');
const Entry = require('../models/health.model.js');
var https = require('https');
var request = require('request');
module.exports = function getHttpsRequests () {
Entry.find({},function(err,entrys){
console.log(err);
if(!err && entrys){
async.each(entrys,function(entry,callback){
request(entry.url, function (error, response, body) {
entry.statuscheck=response.statusCode;
entry.save();
callback();
});
},function (error) {
});
}
});
}
const mongoose = require('mongoose');
const EntrySchema = mongoose.Schema({
url: String,
statuscheck: String
}, {
timestamps: true
});
module.exports = mongoose.model('Entry', EntrySchema);
我会这样做来处理更新数据库。我继续使用标准箭头函数,因为这样对我来说更容易。我发表了一些评论,以便澄清大多数问题。它可能不是最优雅的解决方案,因为我在5分钟内编写了它,但如果您遵循这个一般逻辑流程,您应该离您的解决方案更近(它完全没有经过测试)
为什么要这样做而不是使用现有的正常运行时间监视器?我不是指对抗;我的意思是试图从现有的解决方案中提取出您正在尝试做的事情的不同之处。谢谢。我明白了。