亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

有條件地將 EJS 模板視圖渲染到相同的路徑

有條件地將 EJS 模板視圖渲染到相同的路徑

繁花不似錦 2021-06-01 17:24:10
所以,非常新手的問題,但我搜索了幾個小時并找不到這個特定的問題(我知道我在做一些愚蠢的事情)。我正在從一個簡單的 sqlite 數據庫表中獲取數據,處理某些行是否是特定值,將它們推送到一個表中(我用它來推送到一個 EJS 頁面),然后想要根據是否存在來呈現一個頁面表中是否有任何數據。我想以一定的時間間隔(使用 setInterval)讀取表格,然后如果發生更改,請更新“視圖”。除了 EJS 頁面實際上必須從一個頁面切換到另一個頁面時,所有這些都進展順利。我什至不確定是否可以在渲染后執行此操作。但是,我更愿意在瀏覽器刷新時更改的同一路徑('/')上呈現不同的頁面。初始條件語句呈現正確的 EJS 頁面,但正如我所說,一旦需要切換,頁面將保持在瀏覽器刷新狀態。我試過在多個位置(在“get”內部、外部等)移動條件的位置。還嘗試在單個 EJS 頁面內執行“if”語句,但是一旦呈現初始頁面,然后使用 setInterval 再次調用該函數,它就不會刷新。var sqlite3 = require('sqlite3').verbose();var express = require('express');var app = express();fs = require('fs')app.set('view engine', 'ejs');function query(){  var db = new sqlite3.Database('./my_database.sqlite', sqlite3.OPEN_READWRITE, (err) => {    if (err) {      console.error(err.message);    }    console.log('Connected to the chinook database.');  });  var sql = `SELECT column1 column1              FROM myTable             WHERE column1 = ?`;  var mkts = []  db.each(sql, ['a'], (err, row) => {   if (err) {     throw err;   }   mkts.push(row.column1);   console.log(mkts);  });  db.close((err) => {    if (err) {      return console.error(err.message);    }    console.log('Close the database connection.');    console.log(mkts.length);    if(mkts.length>0){      console.log(true);      app.get('/', function(req, res){        res.render('alert', {mkts:mkts});      });    }else{      console.log(false);      app.get('/', function(req, res){        res.render('index', {mkts:mkts});      });    }  });};query();setInterval(() => query(), 10000);app.listen(3000);所以基本上在打開然后查詢我想要的數據之后,我在 db.close 上運行 get 和 render。在這段代碼中,我可以在 DB 更改時適當地記錄“true”和“false”,但是一旦總體函數運行一次,渲染就不會更改。對不起,如果它很難閱讀,但它讓我一整天都發瘋了。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號