我正在尝试将我的 MySQL 服务器的状态包含在我的路由器的响应中。
健康.js:
var express = require('express');
var router = express.Router();
const db = require('../database');
/* GET home page. */
router.get('/', async function(req, res, next) {
var status = "nothing here yet";
await db.ping((err) => {
// Not working
if(err) status = "Server is down!";
status = "MySQL Server is Active";
// Working
//if(err) return res.status(503).send("Server down!")
//return res.status(200).send("Server up and running!")
})
res.status(200).send(status);
});
module.exports = router;
数据库.js:
const mysql = require('mysql2');
module.exports = mysql.createConnection({
host: 'localhost',
user: 'testdb_user',
password: 'test'
database: 'testdb'
});
使用上面的代码访问路由总是返回“nothing here yet”而不是数据库的实际状态。
使用db.ping()
函数内的注释代码,我得到服务器启动或关闭的正确结果。
我假设我以某种方式将异步/等待的概念搞砸了,但我不确定。我也没有发现使用db.ping()
调用设置变量的示例,然后我可以在函数外部使用该变量(例如我的状态)。我需要如何更改上面的代码health.js
以确保我可以正确设置我的status
变量,然后将其作为响应传递?