服务器不断变旧

时间:2018-01-08 10:49:10

标签: javascript node.js sqlite

添加用户后,新用户不会显示在列表中。只有在重新启动服务器后,一切正常。看起来服务器正在从缓存中下载数据。也许我的代码编写得不好。如何从数据库中获取当前数据?

// addFile

const sqlite3 = require("sqlite3").verbose();
const db = new sqlite3.Database("./db/dbSqlite/app.db", sqlite3.OPEN_READWRITE);

const add = (user) => {
  return new Promise((res, rej) => {
    db.serialize(() => {
      let status = false;
      db.run(`INSERT INTO users(
        login,
        password,
        ) VALUES(?, ?)`, user, (err) => {
        if (err) rej(status);
        status = true;
        res(status);
      });
    })
  })
}
module.exports = add;

// getAll file

const sqlite3 = require("sqlite3").verbose();
const db = new sqlite3.Database("./db/dbSqlite/app.db");

const getAll = new Promise((res, rej) => {
  db.all(`SELECT * from users`, (err, row) => {
    if (row === undefined || err) {
      res("NO_TABLE_USERS");
    } else {
      const stringified = JSON.stringify(row)
      res(JSON.parse(stringified));
    }
  });
})

module.exports = getAll

// route

router.post("/add", helper.isLoggedIn, helper.isAdmin, (req, res) => {
  let msg = "User created successfully!";
  user.add(Object.values(req.body)
    .then((state) => {
      if (!state) msg = "Name already used!";
      user.getAll
        .then((result) => res.render("users", {
          name: req.user,
          users: result,
          msg: msg
        }));
    }));
});

1 个答案:

答案 0 :(得分:2)

getAll应该是一个函数,就像使用add一样。否则,getAll将被解决一次:

// addFile

const sqlite3 = require("sqlite3").verbose();
const db = new sqlite3.Database("./db/dbSqlite/app.db", sqlite3.OPEN_READWRITE);

const add = (user) => {
  return new Promise((res, rej) => {
    db.serialize(() => {
      let status = false;
      db.run(`INSERT INTO users(
        login,
        password,
        ) VALUES(?, ?)`, user, (err) => {
        if (err) rej(status);
        status = true;
        res(status);
      });
    })
  })
}
module.exports = add;

// getAll file

const sqlite3 = require("sqlite3").verbose();
const db = new sqlite3.Database("./db/dbSqlite/app.db");

const getAll = () => {
  return new Promise((res, rej) => {
    db.all(`SELECT * from users`, (err, row) => {
      if (row === undefined || err) {
        res("NO_TABLE_USERS");
      } else {
        const stringified = JSON.stringify(row)
        res(JSON.parse(stringified));
      }
    });
  });
}

module.exports = getAll

// route

router.post("/add", helper.isLoggedIn, helper.isAdmin, (req, res) => {
  let msg = "User created successfully!";
  user.add(Object.values(req.body)
    .then((state) => {
      if (!state) msg = "Name already used!";
      user.getAll()
        .then((result) => res.render("users", {
          name: req.user,
          users: result,
          msg: msg
        }));
    }));
});