nodejs连接数据库,数据库发生变化,怎样不用重启服务器更新网页内容?

hxh奔跑的春风
  • 2
新手上路,请多包涵

初学nodejs,在连接数据库的时候发现,数据库的内容发生变化,但是如果不重启服务器,网页上的内容是不会发生变化。有没有一种办法可以不用重启服务器,通过刷新网页就可以更新内容?保持网页内容和数据库中的内容同步。是因为我连接数据库的代码没有写对位置吗?不应该写在路由上吗?

routes下的index.js

var express = require('express');
var router = express.Router();
const mysql = require("mysql");

let connection = mysql.createConnection({
  host:'localhost',
  port:3306,
  user:'root',
  password:'123456',
  database:'nodejstest'
});

connection.connect();

var user_sql = 'SELECT * FROM test';
connection.query(user_sql,function(err,result){
  if(err){
    console.log('[query]-:'+err);
  }else{

    router.get('/', function(req, res, next) {
      res.render('index', {
        title: '展示mysql数据库测试',
        data:result
      });
    });
  }
});

module.exports = router;

这是网页展示内容(就算插入了新数据,刷新网页也不会发生变化,必须重启服务器才会和数据库同步):
图片描述

这是数据库内容:
图片描述

附上工程目录
图片描述

回复
阅读 1k
1 个回答
✓ 已被采纳

你逻辑错误

你先从数据库中读取数据,然后读取成功通过回调,开启路由

所以路由永远只能使用开启路由之前查询到的数据

完完全全该反过来

先启动路由,当有访问时再读取数据库,返回结果

你知道吗?

宣传栏