问题描述
我目前正在编写一个简单的笔记(好吧,“分配”)Web 应用程序,使用 Hapi 作为后端,使用 Postgresql 作为数据库。我目前的问题是在获取所有笔记的路线上,我在将数据从数据库传递到前端时遇到了麻烦。
这是我的代码:
method: 'GET',path: '/report',// Todo Process data from DB into preformat text & table view
handler: (request,h) => {
const currentWeek = new Date().getWeek()
getReport = `
SELECT * FROM main_assignment WHERE week = ${currentWeek-1}
`
let tableArray= new Array
let finalTable = ''
//FIXME: show finalTable on view
client.connect()
client.query(getReport,(err,res) => {
res.rows.forEach(element => {
const temp = `
<tr>
<td>${element.id}</td>
<td>${element.name}</td>
<td>${element.assignment}</td>
</tr>`
tableArray.push(temp)
});
finalTable = tableArray.join('')
console.log(finalTable)
return h.view('report',{
finalTable
})
})
return h.view('report',{
finalTable
})
当我刷新页面时,表格没有被填充。原来 finalTable 的输出是空白的。我试图在 client.query() 函数中将它注销,它实际上以我想要的方式出现(填充了来自 forEach 迭代的数据)。现在这是我知道的事情
- 我还没有完全掌握异步概念。这可能是我搞砸的地方,我很惭愧地承认我已经重新阅读了整个概念,但仍然没有清楚地了解它的工作原理和用法
- 是的,数据传递很糟糕(新字符串,将所有响应转换为数组,将所有数组连接到前一个字符串)。我......不知道有什么更好的写法,所以请随意更改
有什么办法可以修复代码,这样我就可以将 finalTable 值传递给前端吗?
提前致谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)