Node.js postgreSQL 集成 - 类型错误:无法读取未定义的属性'status'



我正在尝试实现一个简单的postgresql/Node.JS站点,但是,在postgreSQL中执行查询以插入网页时,我遇到了有关查询.js文件中的res对象的TypeError。

我创建了一个路由/用户.js文件,该文件渲染站点并指定"user"变量:

const express = require('express');
const router = express.Router();
const request = require('request');
const db = require('../../config/queries');
router.get('/', (req, res, next) =>
res.render('users', {
users: db.getUsers
})
);
module.exports = router;

然后我有一个配置/查询.js文件,它执行查询并将结果返回到上面的文件:

const pool = require('./db');
const getUsers = (req, res) => {
pool.query('SELECT * FROM users ORDER BY id ASC', (error, results) => {
if (error) {
throw error;
}
console.log(results.rows);
res.status(200).json(results.rows);
});
};
module.exports = {
getUsers
};

最后,html 网站是这样写的:

<p> Hello world</p>
<ul> {{users}} 99999 </ul>

当我加载页面 localhost:5000/users,而控制台正确记录用户数据时,发生以下错误TypeError: Cannot read property 'status' of undefined页面显示:

世界您好

99999

似乎发生错误是因为res.status(200(.json(results.rows(中的res未定义,尽管我不知道为什么会这样。

非常感谢!

您需要修改代码以获取查询结果,然后尝试呈现页面。getUsers不会立即返回结果,而是在回调中返回结果。 所以正确的版本可能是这样的:

router.get('/', (req, res, next) =>
getUsers((error,result)=>
{
if (error) {
throw error;
}
console.log(results.rows);
res.render('users', {
users: results.rows
})
})
);

const getUsers = (callback) => {
pool.query('SELECT * FROM users ORDER BY id ASC',callback )
};

最新更新