使用 node.js 从 MySQL 以 HTML 形式显示默认值

Displaying Default value in HTML form from MySQL using node.js

我有一个场景,我必须显示一个表单而不是接受输入,我必须显示使用 nodejs 从数据库中提取的一些值。以下是预期结果

所以,我写了下面的代码

confirm.ejs

<form>
<label for="fname">First Name</label>
<input type="text" class="form-control" value="<%= ticket.Fname %>" id="fname" readonly>
</form>

js 但我相信这是正确的

router.get("/confirm",function(req,res){
    db.query("SELECT * FROM details WHERE Ticket=?",[variabled4],function(err, results, fields){
        if (err) throw err;
        res.render('confirm', { title: 'ticket info', ticket: results});
    });
});

所以,我认为问题出在 value = "<%= ticket.Fname %> 并且显示了整个表单,但字段为空。 (Fnamedetails table 中的一个列,以 hello 为值,不要与 fname 的拼写错误混淆)

请建议如何解决此问题。

sequelize Raw Queries returns 一个数组作为响应。您应该检查数组是否不为空并为 results[0]

提取 ticket

参见:https://sequelize.org/master/manual/raw-queries.html

这是一个小片段(Handel 认为合适的“找不到票”)

router.get("/confirm",function(req,res){
    db.query("SELECT * FROM details WHERE Ticket=?",[variabled4],function(err, results, fields){
        if (err) throw err;
         // on "results.length == 0" handle "ticket not found" flow

        let ticket = results[0];
        res.render('confirm', { title: 'ticket info', ticket: ticket});
    });
});