![](/img/trans.png)
[英]Node , TypeError: Cannot read properties of undefined (reading 'connect'). error during mongoClient connection
[英]Error: Cannot get orders: TypeError: Cannot read properties of undefined (reading 'connect')
我正在尝试使用 express 和 pg 构建 API。 每当我尝试访问与数据库查询相关的端点时,都会出现上述错误。
我的处理函数如下:
import { Request, Response, Router, NextFunction } from 'express';
import { Orders } from '../models/order';
const orders = new Orders;
const index = async (_req: Request, res: Response, next: NextFunction) => {
try {
const ordersList = await orders.index();
res.json(ordersList);
} catch (err) {
next(err)
}
}
const ordersRoute = Router();
ordersRoute.get('/', index);
此处理程序引用以下模型:
import { Pool } from 'pg';
client = new Pool({
host: POSTGRES_HOST,
database: POSTGRES_DB,
user: POSTGRES_USER,
password: POSTGRES_PASSWORD,
port: parseInt(POSTGRES_PORT as string, 10)
export class Orders {
async index(): Promise<Order[]> {
try {
const conn = await client.connect();
const sql = 'SELECT * FROM orders';
const result = await conn.query(sql);
conn.release();
return result.rows;
} catch (err) {
throw new Error(`Cannot get orders: ${err}`);
}
}
}
任何时候我尝试访问我得到的端点
错误:无法获取订单:TypeError:无法读取未定义的属性(读取“连接”)
在控制台中。 知道如何解决吗?
那么在你的情况下事情是如何运作的。
nodejs从你的索引开始,从上到下一一读取所有模块。
在您的脚本中,您声明client
,然后导出一个class
。 在这种情况下,您的client
已设置,然后您导出一个类,该文件已完成,这意味着唯一剩下的就是exported
的东西。 因此,当您尝试使用exported
的类时,您将不会拥有与模块中相同的上下文。
您还需要导出client
并将其导入您需要该类的位置或在类中包含client
定义
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.