【发布时间】:2023-01-25 03:59:41
【问题描述】:
我在 pg.connect not defined 上收到错误。在处理程序模块中。
我正在尝试在 fastify 中使用 postgres 创建一个表。我有并处理处理路由和发送 API 请求的路由文件夹。当我点击 http://localhost:3000/initDB 路由时,错误提示
{
"statusCode": 500,
"error": "Internal Server Error",
"message": "Cannot read property 'connect' of undefined"
}
这是我的表格模块,看起来像表格模块没有得到 fastify 实例我该如何解决这个问题。
const fastify = require("../server");
const Table = async (req, reply) => {
await fastify.pg.connect(onConnect);
function onConnect(err, client, release) {
if (err) return reply.send(err);
client.query(
'CREATE TABLE IF NOT EXISTS "users" ("id" SERIAL PRIMARY KEY,"name" varchar(30),"lastname" varchar(30));',
function onResult(err, result) {
release();
reply.send(err || result);
}
);
}
};
module.exports = {
Table,
};
路线文件,
我在这里处理过路线,
//const fastify = require("fastify");
const { Table } = require("./Handler/CreateTable");
const { GetUsers, PostUsers } = require("./Handler/Handler");
const CreateTable = {
handler: Table,
};
const getUsers = {
handler: GetUsers,
};
const postUsers = {
handler: PostUsers,
};
async function routes(fastify, options) {
fastify.get("/initDB", Table);
fastify.get("/users", getUsers);
fastify.post("/users/create", postUsers);
}
module.exports = routes;
server.js 文件,
const fastify = require("fastify")({ logger: true });
fastify.register(require("fastify-postgres"), {
connectionString: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_SERVICE}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DB}`,
});
module.exports = fastify;
fastify.register(require("./routes"));
// Run the server
const start = () => {
fastify.listen(3000, "0.0.0.0", (err, address) => {
if (err) {
fastify.log.error(err);
process.exit(1);
}
});
};
start();
pg连接报错待解决
在此输入
【问题讨论】:
标签: javascript node.js postgresql docker fastify