我正在使用 node 和 postgres,我是编写异步函数的新手,我正在尝试做的是一个非常简单的查询,它将对数据库中的记录进行总数,添加一个并返回结果。结果将在 DOM 生成之前可见。我不知道该怎么做,因为异步函数不会向调用者返回值(也可能我仍然有同步的心态)。这是功能:
function generateRTA(callback){
var current_year = new Date().getFullYear();
const qry = `SELECT COUNT(date_part('year', updated_on))
FROM recruitment_process
WHERE date_part('year', updated_on) = $1;`
const value = [current_year]
pool.query(qry, value, (err, res) => {
if (err) {
console.log(err.stack)
} else {
var count = parseInt(res.rows[0].count) + 1
var rta_no = String(current_year) + '-' + count
callback(null, rta_no)
}
})
}
对于前端,我使用带有简单 HTML 表单的哈巴狗。
const rta_no = generateRTA(function (err, res){
if(err){
console.log(err)
}
else{
console.log(res)
}
})
app.get('/new_application', function(req, res){
res.render('new_application', {rta_number: rta_no})
});
我可以在 console.log 中看到 rta_no,但是当值准备好后如何将它传递回 DOM?