gpt4 book ai didi

node.js - 无法使用 Sequelize ORM 连接到 AWS RDS

转载 作者:行者123 更新时间:2023-12-03 22:31:06 25 4
gpt4 key购买 nike

我正在开发一个使用 Sequelize ORM 连接到 AWS RDS 的应用程序。我的连接设置如下:
联系

import {Sequelize} from 'sequelize-typescript';



// Instantiate new Sequelize instance!
export const sequelize = new Sequelize({
"username": "AWS RDS USER",
"password": "AWS RDS PASS",
"database": "postgres",
"host": "******.******.us-east-1.rds.amazonaws.com",

dialect: 'postgres',
storage: ':memory:',
});

我还定义了一个 模型 来表示定义如下的数据库表:
模型
import {Table, Column, Model, CreatedAt, UpdatedAt} from 'sequelize-typescript';

@Table
export class FeedItem extends Model<FeedItem> {
@Column
public caption!: string;

@Column
public url!: string;

@Column
@CreatedAt
public createdAt: Date = new Date();

@Column
@UpdatedAt
public updatedAt: Date = new Date();
}
并导出为:
import { FeedItem } from './feed/models/FeedItem';


export const V0MODELS = [ FeedItem ];
然后在我的 server.ts 中,我导入我的 sequelize 连接和模型并尝试像这样连接到我的 AWS RDS:
服务器.ts
import express from 'express';
import { sequelize } from './sequelize';

import { IndexRouter } from './controllers/v0/index.router';

import { V0MODELS } from './controllers/v0/model.index';

(async () => {

try {
await sequelize.authenticate();
console.log('Connection has been established successfully.');
await sequelize.addModels(V0MODELS);
await sequelize.sync({ force: true, logging: console.log });
} catch (error) {
console.error(error);
}


const app = express();
const port = process.env.PORT || 8080; // default port to listen

app.use(express.json());

//CORS Should be restricted
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:8100");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
next();
});

app.use('/api/v0/', IndexRouter)

// Root URI call
app.get( "/", async ( req, res ) => {
res.send( "/api/v0/" );
} );


// Start the Server
app.listen( port, () => {
console.log( `server running http://localhost:${ port }` );
console.log( `press CTRL+C to stop server` );
} );
})();

当我运行程序时,没有建立连接,服务器无法启动。当我删除 sequelize.sync 方法时,服务器将启动但我的表没有创建。 catch 块没有捕获错误,所以我不怀疑有错误。目前我确实相信这是处理 postgres 和 AWS 的连接问题,但我似乎无法确定它。感谢所有反馈和指导。

最佳答案

我发现了这个问题。问题是由于我使用的 Node 版本,当时是 14.15.3。此版本与我当前的 postgres 13.1 版本不兼容,因此我使用了 nvm 并降级到 Node 11.15.0,现在我的 sequelize 命令正在运行。

关于node.js - 无法使用 Sequelize ORM 连接到 AWS RDS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66836644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com