NodeJs - Sequelize - Нераспознанный тип данных для атрибута - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь сделать модель для моего стола dcauser. Я застрял, потому что он возвращает ошибку «Нераспознанный тип данных для атрибута». Теперь я не знаю, испортил ли я что-то в базе данных, или сиквелиз не работает правильно с моей БД, или я что-то напутал в приведенном ниже коде. Я следовал некоторым инструкциям, но я всегда застреваю на одной и той же проблеме, о которой я упоминал выше.

var Sequelize = require('sequelize');
var sequelize = new Sequelize('postgres://postgres:xpwdx@localhost:xportx/xdbx');


const UserSchema = sequelize.define(
    'dcauser',
    {
        userid: {
            type: Sequelize.Integer,
            allowNull: false,
        }
    }
);


module.exports = UserSchema;

Я получаю следующую ошибку:

C:\Users\luka\source\repos\dcaBotManager\node_modules\sequelize\lib\model.js:1005
        throw new Error(`Unrecognized datatype for attribute "${this.name}.${name}"`);
        ^

Error: Unrecognized datatype for attribute "dcauser.userid"
    at C:\Users\luka\source\repos\dcaBotManager\node_modules\sequelize\lib\model.js:1005:15
    at C:\Users\luka\source\repos\dcaBotManager\node_modules\lodash\lodash.js:13401:38
    at C:\Users\luka\source\repos\dcaBotManager\node_modules\lodash\lodash.js:4905:15
    at baseForOwn (C:\Users\luka\source\repos\dcaBotManager\node_modules\lodash\lodash.js:2990:24)
    at Function.mapValues (C:\Users\luka\source\repos\dcaBotManager\node_modules\lodash\lodash.js:13400:7)
    at Function.init (C:\Users\luka\source\repos\dcaBotManager\node_modules\sequelize\lib\model.js:1001:28)
    at Sequelize.define (C:\Users\luka\source\repos\dcaBotManager\node_modules\sequelize\lib\sequelize.js:428:11)
    at Object.<anonymous> (C:\Users\luka\source\repos\dcaBotManager\src\models\user.model.js:14:30)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Module.require (internal/modules/cjs/loader.js:1042:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\Users\luka\source\repos\dcaBotManager\src\models\index.js:2:23)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Module.require (internal/modules/cjs/loader.js:1042:19)
    at require (internal/modules/cjs/helpers.js:77:18)
    at Object.<anonymous> (C:\Users\luka\source\repos\dcaBotManager\src\config\passport.js:3:18)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Module.require (internal/modules/cjs/loader.js:1042:19)
    at require (internal/modules/cjs/helpers.js:77:18)

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Ключевое слово integer должно быть в верхнем регистре

{
    userid: {
        type: Sequelize.INTEGER,
        allowNull: false,
    }
}
0 голосов
/ 05 мая 2020

INTEGER должен быть в верхнем регистре. См.

https://sequelize.org/v5/manual/data-types.html

Хотя вместо этого вам следует начать использовать DataTypes.INTEGER.

https://sequelize.org/master/variable/index.html#static -variable-DataTypes

...