- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个 node.js 应用程序,它会 ping 一个 url,然后在收到错误代码时向 Slack 发送一条消息。它可以正常工作两天,但随后就停止工作了。我正在使用 Screen 来保持它的运行,但它似乎仍然停止了。任何帮助将不胜感激。
代码如下:
var request = require("request")
var Hapi = require('hapi');
var Slack = require('slack-node');
var h = 0;
var s = 0;
var e = 0;
function onlineBooking(){
request({
url: "http://example.com",
json: true
}, function (error, response, body) {
if (!error && response.statusCode === 200) {
// 'if/else' checks that it receives an up respsose four times in a row
// the variable e is increased by .25 for every 200(ok response) until e reaches 1
// it will then send a message that the server is up
if(e < 1 && response.statusCode === 200){
setTimeout(function () {
console.log(response.statusCode) // Print the response code
e =e+0.25;
}, 6000); // 6 seconds delay between each response
}
else {
while(h == 0){
console.log(response.statusCode) // Print the response code
console.log("********************")
slackReviewBot("Website :robot_face: ", response.statusCode + " - OK", "http://example.com", "");
h++;
s = 0;
}
}// end of else
}// end of if
else {
console.log(response.statusCode) // Print the response code
e = 0;
setTimeout(function () {
while(s == 0){
console.log(response.statusCode) // Print the response code
console.log("********************")
slackReviewBot("Website :robot_face: ", response.statusCode, "http://example.com", "");
s++;
h=0;
}}, 3000);
} // end of else
})
}
// sets the loop for checking every 7 seconds
setInterval(function(){
onlineBooking();
}, 7000);
// this function sends server name, a message and url to slack
function slackReviewBot(servername, body, urls, bod) {
var time = require('time');
// Create a new Date instance
var now = new time.Date();
now.setTimezone("Europe/London");
var bo = body;
var bod = bod;
var urls = urls;
var sname = servername;
// you'll need to replace the slack webhook below
// you'll find info on webhooks here https://api.slack.com/incoming-webhooks
var webhook_url = 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxx';
slack = new Slack();
slack.setWebhook(webhook_url);
slack.webhook({
channel: "#server-uptime",
username: "Server:",
icon_emoji: "http://4.bp.blogspot.com/-mYCTaPOu-60/VK98X5CJEyI/AAAAAAAAApM/0oplbclvnUY/s1600/unnamed.png",
text: " " + "\n" +
"*" + sname + " * " + "\n" +
"Status: " + bo + "\n" +
now + "\n" +
"Check the status here: " + urls + "\n"
}, function(err, response) {
console.log(response);
});
}
// below is so you can send a test json object to the server
// http POST localhost:1337/jsonpost test=Test
// you'll get a slack message letting you know the server is running
var server = new Hapi.Server();
server.connection({
port: 1337
});
exports.add = function(i, j) {
return i + j;
};
// Slack function for sending the test reply
function slackReviewBot2(testserver) {
testserver = testserver;
// you'll need to replace the slack webhook below
// you'll find info on webhooks here https://api.slack.com/incoming-webhooks
var webhook_url = 'https://hooks.slack.com/services/xxxxxxxxxxxxxxxxxxxxxxxxxx';
slack2 = new Slack();
slack2.setWebhook(webhook_url);
slack.webhook({
channel: "#server-uptime",
username: "Server-Test-Reply:",
icon_emoji: "http://www.wonderfulwebsites.ie/logo.png",
text: ":star: :star: :star: :star: :star:" + "\n" +
"\n" +
"Sever is up and running!!!"
}, function(err, response) {
console.log(response);
});
}
// take the json object for testing
server.route({
method: 'POST'
, path: '/jsonpost',
handler: function(req, reply) {
var review = {
userName: req.payload.userName
}
//passes the review to the slackbot function
slackReviewBot2(review.userName);
reply("Received");
}
});
// prints a server running message
server.start(function(){
console.log('server running at: ', server.info.url);
});
您可以在下面找到解释其工作原理的帖子 http://codingyoda.com/slack-pinging-tool.php
最佳答案
我不知道为什么会这样,但你可以使用 forever 解决这个问题如果变为非事件状态或崩溃(这会替换屏幕),它将重新启动进程。
关于javascript - node.js 应用程序在 AWS 上停止的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44960056/
我正在学习构建单页应用程序 (SPA) 所需的所有技术。总而言之,我想将我的应用程序实现为单独的层,其中前端仅使用 API Web 服务(json 通过 socket.io)与后端通信。前端基本上是
当我看到存储在我的数据库中的日期时。 这是 正常 。日期和时间就是这样。 但是当我运行 get 请求来获取数据时。 此格式与存储在数据库 中的格式不同。为什么会发生这种情况? 最佳答案 我认为您可以将
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我正在尝试使用backbone.js 实现一些代码 和 hogan.js (http://twitter.github.com/hogan.js/) Hogan.js was developed ag
我正在使用 Backbone.js、Node.js 和 Express.js 制作一个 Web 应用程序,并且想要添加用户功能(登录、注销、配置文件、显示内容与该用户相关)。我打算使用 Passpor
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我尝试在 NodeJS 中加载数据,然后将其传递给 ExpressJS 以在浏览器中呈现 d3 图表。 我知道我可以通过这种方式加载数据 - https://github.com/mbostock/q
在 node.js 中,我似乎遇到了相同的 3 个文件名来描述应用程序的主要入口点: 使用 express-generator 包时,会创建一个 app.js 文件作为生成应用的主要入口点。 通过 n
最近,我有机会观看了 john papa 关于构建单页应用程序的精彩类(class)。我会喜欢的。它涉及服务器端和客户端应用程序的方方面面。 我更喜欢客户端。在他的实现过程中,papa先生在客户端有类
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我是一个图形新手,需要帮助了解各种 javascript 2D 库的功能。 . . 我从 Pixi.js 中得到了什么,而我没有从 Konva 等基于 Canvas 的库中得到什么? 我从 Konva
我正在尝试将一些 LESS 代码(通过 ember-cli-less)构建到 CSS 文件中。 1) https://almsaeedstudio.com/ AdminLTE LESS 文件2) Bo
尝试查看 Express Passport 中所有登录用户的所有 session ,并希望能够查看当前登录的用户。最好和最快的方法是什么? 我在想也许我可以在登录时执行此操作并将用户模型数据库“在线”
我有一个 React 应用程序,但我需要在组件加载完成后运行一些客户端 js。一旦渲染函数完成并加载,运行与 DOM 交互的 js 的最佳方式是什么,例如 $('div').mixItUp() 。对
请告诉我如何使用bodyparser.raw()将文件上传到express.js服务器 客户端 // ... onFilePicked(file) { const url = 'upload/a
我正在尝试从 Grunt 迁移到 Gulp。这个项目在 Grunt 下运行得很好,所以我一定是在 Gulp 中做错了什么。 除脚本外,所有其他任务均有效。我现在厌倦了添加和注释部分。 我不断收到与意外
我正在尝试更改我的网站名称。找不到可以设置标题或应用程序名称的位置。 最佳答案 您可以在 config/ 目录中创建任何文件,例如 config/app.js 包含如下内容: module.expor
经过多年的服务器端 PHP/MySQL 开发,我正在尝试探索用于构建现代 Web 应用程序的新技术。 我正在尝试对所有 JavaScript 内容进行排序,如果我理解得很好,一个有效的解决方案可以是服
我是 Nodejs 的新手。我在 route 目录中有一个 app.js 和一个 index.js。我有一个 app.use(multer....)。我还定义了 app.post('filter-re
我正在使用 angular-seed用于构建我的应用程序的模板。最初,我将所有 JavaScript 代码放入一个文件 main.js。该文件包含我的模块声明、 Controller 、指令、过滤器和
我是一名优秀的程序员,十分优秀!