Express-MySQL查询结果未呈现

时间:2019-02-16 01:51:46

标签: mysql node.js express ejs

我正在制作一个Webform,用户在其中输入序列号,并显示有关具有相应序列号的项目的信息。

数据库查询成功,但是res.render()未呈现结果。

app.js

//ibutton page, displayed after clicking link
app.get('/ibuttons', function (req, res){
    res.render('ibutton');
});

app.post('/ibuttons/view/', function (req, res){

let query = ('SELECT serialNum, lotNumber, dateCode, model FROM iButton WHERE serialNum = ?');
db.query(query, [req.body.serialNumber], function (err, results, fields) {
    console.log(results);
    res.render('ibutton', {
        ibuttons: results
    });

  });
});

ibutton.ejs

<% include partials/ibuttonHeader %>
<h1>iButton Information</h1>
<form method = "POST" action="/ibuttons/view">
    <label>Enter your iButton's Serial Number</label><br>
    <input type ="test" name="serialNumber">
    <input type ="submit" value="Submit">
</form>
<div>
    <table>
        <% ibuttons.forEach(function(ibutton){ %>
            <tr><%ibutton.serialNum%></tr>
            worked
        <% }) %> 
    </table>
</div>

在基础输入一个序列号并单击“提交”后,在/ ibutton / view上显示“已工作”,这意味着forEach遍历了某些内容,并且控制台会打印出查询结果,但该信息未显示在页面上。

1 个答案:

答案 0 :(得分:0)

在ibutton.ejs中

<tr><%ibutton.serialNum%></tr>

应该是

<tr><%=ibutton.serialNum%></tr>

我忘记了变量所需的'='。