mysql - Express - mysql 查询结果未呈现

标签 mysql node.js express ejs

我正在制作网络表单,用户在其中输入序列号,然后显示具有相应序列号的项目的信息。

数据库查询成功,但 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 上会显示“worked”,这意味着 forEach 循环遍历了某些内容,并且控制台打印出查询结果,但页面上未显示该信息。

最佳答案

在 ibutton.ejs 中

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

应该是

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

我忘记了变量所需的“=”。

关于mysql - Express - mysql 查询结果未呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54719130/

相关文章:

mongodb - node.js: 带有 Mongoose 的 expressjs

node.js - Node js Express中 'app.resource'有什么用

python - 错误 'long' 对象没有属性 'fetchall'

java - 错误查询

c++ - 运行时符号查找错误

javascript - 使用nodejs和express不断出现404错误

mysql - 计算所有现有组合

mysql - 如何有选择地计算记录并在mysql中按日期分组?

javascript - 为什么在调用 api 时必须返回一个函数,而在express(KeystoneJs)中调用 View Controller 时则不需要返回函数?

node.js - 为什么我的 NPM 缓存文件夹位于 ./false/_cacache 中?