Я начинаю с sequelize, чтобы создать API, и у меня возникает проблема с транзакциями.
Моя конфигурация базы данных сиквелиза выглядит следующим образом:
import databaseConfig from '../config/database';
import User from '../app/models/User';
import File from '../app/models/File';
import Address from '../app/models/Address';
import Customer from '../app/models/Customer';
import Product from '../app/models/Product';
import ServiceOrder from '../app/models/ServiceOrder';
import OrderStatus from '../app/models/OrderStatus';
const models = [
User,
File,
Address,
Customer,
Product,
ServiceOrder,
OrderStatus,
];
class Database {
constructor() {
this.init();
}
async init() {
this.connection = new Sequelize(databaseConfig);
models
.map(model => model.init(this.connection))
.map(model => model.associate && model.associate(this.connection.models));
}
}
export default new Database();
Тогда у меня есть orderStatusController с функциями для сохранения в базе данных следующим образом:
import sequelize from 'sequelize';
import OrderStatus from '../models/OrderStatus';
class OrderStatusController {
async store(req, res) {
sequelize
.transaction(t => {
return OrderStatus.create(
{
description: 'Aguardando Orçamento',
},
{ transaction: t }
);
})
.then(result => res.json(result))
.catch(err => res.json({ error: err }));
}
}
export default new OrderStatusController();
Я получил транзакцию - это не ошибка функции.
Каков наилучший способ решить эту проблему? Я прочитал, что мне нужно создать экземпляр sequelize, но у меня уже есть конфигурация базы данных.
Есть ли способ использовать конфигурацию моей базы данных? Я не хочу создавать еще один "новый Sequelize ()" в контроллере.
Спасибо за вашу помощь.