我想顯示來自 mySql 的 Ejs 中最后輸入的值,這在我的代碼中
js
router.get('/forming',showForm);
function showForm(req, res, next) {
console.log("test1");
var getQuery = "SELECT tableone, mksa FROM myDataBase ORDER BY id DESC LIMIT 1";
let query = db.query(getQuery, (err,result) => {
if(err){
console.log(err);
}
res.render('myejs_form_file',{ articleData: result });
});
};
router.post('/create', function(req, res, next) {
const userDetails=req.body;
var sql = 'INSERT INTO myDataBase SET ?';
db.query(sql, userDetails,function (err, data) {
if (err) throw err;
console.log("Details is inserted successfully ");
});
res.redirect('/article/forming'); // redirect to user form page after inserting the data
});
埃斯
<div class="user-detail">
<h2>Input Content & MKSA</h2>
<form action="/article/create" method="POST">
<label>First Name</label>
<input type="text" placeholder="Enter First Name" name="FirstName" required>
<label>Last Name</label>
<input type="text" placeholder="Enter Last Name" name="LastName" required>
<button type="submit">Submit</button>
</form>
</div>
<div>
<table >
<% articleData.forEach(data => { %>
<p><%= data.FirstName %> this</p>
<p><%= data.LastName %> this</p>
<% }) %>
</table>
</div>
此代碼首先從用戶輸入資料,然后單擊提交時它將其值存盤在 mySql 資料庫中,我希望這也再次顯示它的值,它的作業但不顯示最后一個只是倒數第二個,抱歉我的英語不好。非常感謝所有幫助
uj5u.com熱心網友回復:
您的重定向是同步發生的,可能在資料庫插入完成之前。這就是為什么 SELECT inGET /forming還沒有看到最近插入的值。
將重定向陳述句放入回呼函式以使其異步執行:
router.post('/create', function(req, res, next) {
...
db.query(sql, userDetails, function (err, data) {
if (err) next(err);
else {
console.log("Details is inserted successfully ");
res.redirect('/article/forming');
}
}
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/489765.html
