123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- const express = require('express');
- const robot = require('./robot')
- const {getRustConfig} = require('./config')
- const http = require("./utils/http");
- const file = require('./utils/file')
- const {logger, fileLogger} = require("./utils/logger");
- const {spawn, exec, fork, execSync} = require("child_process");
- const path = require("path");
- const {ka} = require("date-fns/locale");
- const {getAppMap} = require("./robot");
- /*******
- * web
- * **** */
- function init() {
- const app = express();
- const port = 3000;
- // 中间件示例,用于处理JSON请求体
- app.use(express.json());
- // GET请求的路由示例
- app.get('/', (req, res) => {
- res.send('is OK!');
- });
- //简单三个接口,为了方便使用get请求
- app.get('/isOK', isOK);
- app.get('/logs', (req, res) => {
- // 获取发送过来的信息(请求体的数据)
- const param = req.query;
- const n = param.n
- const id = param.id
- robot.appMap.forEach((value, key) => {
- logger.info(JSON.stringify(value))
- })
- var app = robot.getApp(id)
- // logger.info(JSON.stringify(getAppMap()))
- // logger.info(JSON.stringify(app))
- logger.info(`当前参数:${id}-${n}-??${app.port}`);
- let result = [];
- if (app.port !== -1) {
- var logPath = "./logs" + app.port
- logger.info(`日志相对地址:${logPath}`)
- file.getLastFile(logPath, 10, (fileNameList) => {
- // logger.info('??1:', fileNameList);
- result = file.readLastNLines(logPath, fileNameList, n);
- // logger.info('?????:', result);
- res.send({'code': 200, 'data': result, "message": "SUCCESS"});
- });
- } else {
- res.send({'code': 200, 'data': result, "message": "SUCCESS"});
- }
- });
- app.post('/execute', (req, res) => {
- // 获取发送过来的信息(请求体的数据)
- const param = req.body;
- (async (param) => {
- console.log('请求体:', param);
- var executeType = param.executeType
- if (executeType === "RUN") {
- await robot.run(param)
- } else if (executeType === "STOP") {
- await robot.closeApp(param)
- } else if (executeType === "RESTART") {
- await robot.restartApp(param)
- }
- })(param);
- // 回应信号(响应请求)
- res.send({'code': 200, 'data': "null", "message": "SUCCESS"});
- })
- // 使服务器监听特定端口
- app.listen(port, () => {
- // console.log(`服务器正在监听 http://localhost:${port}`);
- });
- logger.info('--web 启动');
- }
- // node-已上线-上报
- function robotNodeStatus() {
- var config = getRustConfig()
- http.request_post(`${config.baseUrl}/report/beOnline`, {}, {...config.headers}).then((data) => {
- // logger.info('??', data);
- logger.info('#####################汇报:node 在线-上报成功!', data);
- }).catch((error) => {
- logger.error(`node 在线!-上报失败: ${error.message}`); // 处理可能发生的错误
- });
- }
- function isOK(req, res) {
- res.send({'code': 200, 'data': "null", "message": "SUCCESS"});
- }
- // 日志读取操作
- module.exports = {
- init,
- robotNodeStatus
- };
|