您好我正在使用Express Framework,我正在使用把手从我的mysql表中呈现数据。在尝试使用下面的代码渲染数据时,不是渲染值而是显示[object object]。我在下面发布了我的代码。
index.js:
var query = connection.query('SELECT * FROM requestor_auth WHERE question_id = ? AND answer = ? AND app_key = ? LIMIT 1', [data.qid, data.ansvalue, data.appid], function(err,rows)
{
if(err) {
console.log("Error Selecting : %s ",err );
res.redirect('/');
} else {
res.render('requestform',{page_title:"Edit Customers - Node.js",data:rows});
}
requestform.hbs:
<div class="addressto">
<h4>To,</h4>
<br>
<span style="font-size:18px;margin-left:10px;">The Collector Of</span>
<input type="text" value="{{data}}" class="line" class="text-line" style="margin-left:35px;"><br>
</div>
表单输入中显示为[object object]的值。我尝试使用data.key_value来呈现数据,但它没有显示值。 请给我一个解决方案。谢谢。
答案 0 :(得分:1)
因为Mysql响应的结果是数组所以它应该是:
var query = connection.query('SELECT * FROM requestor_auth WHERE question_id = ? AND answer = ? AND app_key = ? LIMIT 1', [data.qid, data.ansvalue, data.appid], function(err,rows) {
if(err) {
console.log("Error Selecting : %s ",err );
res.redirect('/');
} else {
res.render('requestform',{page_title:"Edit Customers - Node.js",data:rows[0]});
}
如果出现同样的错误,您应该console.log()
检查结果。
答案 1 :(得分:0)
回调函数中的rows参数是一个select查询,总是一个对象数组。使用把手,您应该能够执行以下操作:
<div class="addressto">
<h4>To,</h4>
<br>
<span style="font-size:18px;margin-left:10px;">The Collector Of</span>
<input type="text" value="{{data[0].answer}}" class="line text-line" style="margin-left:35px;">
<br>
</div>
多个类名也可以在一个类属性中。