我正在開發一種資料庫網站,您可以在其中搜索人員組態檔。
我正在嘗試從資料庫查詢中列印資料,但我得到:[object Object]。
相關代碼:
索引.js
router.get('/profile/:name', function(req, res){
db.query("SELECT name FROM people where name='Jack'",function(err,names){
console.log(names);
res.render('template', {person: names});
});
});
模板.ejs
<h1>Profile of <%= person %></h1>
使用 console.log 我得到了我所期望的:
[ RowDataPacket { name: 'Jack' } ]
如何在 <=%person%> 中僅列印名稱“Jack”?
uj5u.com熱心網友回復:
模板只能顯示字串和數字之類的東西,它們可以用它們的.toString()方法直接轉換為字串(因為字串是必須進入 HTML 的)。它不能直接顯示物件。
當您嘗試顯示一個物件時,它會呼叫.toString()它并獲取它,"[object Object]"這就是為什么您會看到您所看到的。
因此,您需要將要顯示的物件的哪些屬性準確添加到模板中,以及您希望這些不同的屬性如何在 HTML 中格式化。參考模板中的屬性本身。我不知道您傳遞的資料究竟是什么形式,但如果它是一個陣列,那么您將必須參考陣列索引或在模板中創建一個迭代回圈來顯示陣列中的所有名稱。
如果您只想要陣列中的第一個名稱并且該陣列只是一個簡單的名稱字串陣列(而不是一個物件陣列),您可以從這里更改:
res.render('template', {person: names});
對此:
res.render('template', {person: names[0]});
并且,這將在串列中呈現該名字:
<h1>Profile of <%= person.name %></h1>
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/390708.html
標籤:javascript 节点.js 数组 表达 ejs
上一篇:回圈中的準備陳述句
