Это моя функция, которую я создал (все еще пытаюсь ее реорганизовать, извините за беспорядок) .then ((CountryData) => CountryData.createData ({Однако я создал связь между CountryData и DataPoint когда я пытаюсь запустить скрипт на самом деле, он выдает ошибку
.then((CountryData) =>
CountryData.createData({
Я не могу понять, что я делаю неправильно. Мне очень трудно понять документацию Sequelize, когда дело доходит до этого
Вот мой сценарий:
import axios from 'axios';
import { models } from '../models/index';
var async = require('async');
const processData = ({
CountryCode,
Country,
Province = '',
CityCode = '',
City = '',
Lat,
Lon,
LocationID,
Confirmed,
Deaths,
Recovered,
Active,
Date,
}) => {
models.CountryData.findOrCreate({
defaults: {
CountryCode,
Country,
Province,
CityCode,
City,
Lat,
Lon,
LocationID,
},
where: { LocationID: LocationID },
})
.then((CountryData) =>
CountryData.createData({
CountryCode,
Confirmed,
Deaths,
Recovered,
Active,
LocationID,
DateOfStat: Date,
}),
)
.catch((err) => console.log(err));
};
Вот моя модель страны
const country = (sequelize, DataTypes) => {
const CountryData = sequelize.define('country', {
Country: {
type: DataTypes.STRING,
},
CountryCode: {
type: DataTypes.STRING,
},
Province: {
type: DataTypes.STRING,
},
City: {
type: DataTypes.STRING,
},
CityCode: {
type: DataTypes.STRING,
},
Lat: {
type: DataTypes.STRING,
},
Lon: {
type: DataTypes.STRING,
},
LocationID: {
type: DataTypes.STRING,
unique: true,
},
DataIDs: {
type: DataTypes.INTEGER,
},
});
CountryData.associate = (models) => {
CountryData.hasMany(models.DailyData, {
foreignKey: {
name: 'DataIDs',
},
as: 'data',
onDelete: 'CASCADE',
});
};
return CountryData;
};
export default country;
Вот моя модель dailydata
const dailyData = (sequelize, DataTypes) => {
const DailyData = sequelize.define('dailyData', {
CountryCode: {
type: DataTypes.STRING,
},
LocationID: {
type: DataTypes.STRING,
},
Confirmed: {
type: DataTypes.INTEGER,
},
Deaths: {
type: DataTypes.INTEGER,
},
Recovered: {
type: DataTypes.INTEGER,
},
Active: {
type: DataTypes.INTEGER,
},
DateOfStat: {
type: DataTypes.DATE,
},
CountryID: {
type: DataTypes.INTEGER,
},
});
DailyData.associate = (models) => {
DailyData.belongsTo(models.CountryData, {
foreignKey: {
name: 'CountryID',
},
as: 'country',
});
};
return DailyData;
};
export default dailyData;
Вот модель индекса
import Sequelize from 'sequelize';
import 'dotenv/config';
const sequelize = new Sequelize(
process.env.DATABASE,
process.env.DATABASE_USER,
process.env.DATABASE_PASSWORD,
{
dialect: 'postgres',
},
);
const models = {
CountryData: sequelize.import('./country'),
DailyData: sequelize.import('./dailyData'),
};
Object.keys(models).forEach((key) => {
if ('associate' in models[key]) {
models[key].associate(models);
}
});
export { sequelize, models };
Извините за длинный код. Я бы пропустил некоторые, но на данный момент я понятия не имею, что я делаю не так. Кроме того, какие рекомендации я могу получить, чтобы получить лучший gr asp при секвелировании?
Заранее большое спасибо.