首页 > 解决方案 > 为什么 node-postgres 仅适用于路由

问题描述

我目前正在尝试使用 postgresql 和 pg for node.js 从 AWS RDS 查询一些数据。出于某种原因,我发现我只能在使用路由处理程序时查询数据。

例如:

const data = require('../data/rand.json');
const db = require('../db');

const Router = require('express-promise-router');

const router = new Router();

module.exports = router;

router.get('/', (req,res) => {
    db.query(`SELECT * FROM rooms WHERE id < 10`)
    .then((val) => console.log(val))
    .catch(err => console.log(err))
})

但是,当我尝试像这样查询数据时:

const db = require('../db');

db.query(`SELECT * FROM rooms WHERE id < 10`)
    .then((val) => console.log(val))
    .catch(err => console.log(err))

我收到此错误 - TypeError [ERR_INVALID_ARG_TYPE]:“key”参数必须是字符串类型或 Buffer、TypedArray、DataView 或 KeyObject 的实例。收到空

我可以继续使用路由进行查询,但想知道为什么会发生这种情况以及是否正常。我在node-postgres文档上找不到太多信息。我还是新手,感谢您的帮助。

编辑:db文件看起来像这样

const { Pool } = require('pg');

//don't need to add obj w/ env var inside Pool
const pool = new Pool();

//value - cb f(x)
module.exports = {
  query: (text, params) => pool.query(text, params),
}

标签: node.jspostgresqlnode-postgres

解决方案


推荐阅读