我对表达很陌生,我在 Postgres 中创建了一个数据库来提取有关博客文章的数据,以将信息放入 ejs 文件中。 我收到错误:
Cannot read property 'send' of undefined
我尝试用res
和req
调用db.getPosts()
,但是无法再次设置标题,返回错误。
我的 query.js
文件中有问题的代码块:
const getPosts = (_req, res) => {
pool.query('SELECT * FROM blog_posts', (error, results) => {
console.log(error);
// console.log(results.rows);
if (error) {
throw error
}
return res.send(results.rows );
})
}
send(results.rows)
或 render('blog', {posts: results.rows})
调用 res
给出完全相同的错误。
server.js
中应该使用该数据的函数如下:
app.get("/blog", function (req, res) {
const posts = db.getPosts();
res.render("blog", { posts: posts });
});
我做错了什么?我缺乏一些知识,这是肯定的,所以如果你能帮忙,请尽可能简单地向我解释一下。
此外,send()
函数是否是获取要在 server.js
中操作的数据的正确函数?许多教程建议使用 json()
但后来我并没有真正获得正确的数据格式,它只是显示在浏览器中。
非常感谢。
最佳答案
让getPosts
接收回调:
const getPosts = (callback) => {
pool.query('SELECT * FROM blog_posts', (error, results) => {
console.log(error);
// console.log(results.rows);
if (error) {
throw error
}
callback(results.rows);
})
}
用法类似于:
app.get("/blog", function (req, res) {
db.getPosts(function(rows) {
res.render("blog", {posts: rows})
});
});
关于node.js - 从数据库获取数据的问题, "render"函数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56236187/