Лучший способ импортировать модели Sequelize в node.js - PullRequest
0 голосов
/ 17 апреля 2019

Я использую sequelize orm в node.js. Я создал папки моделей для всех моделей, например userModel.js, в userModel.js у меня есть некоторые функции на основе классов, такие как login и getToken.

// some code of userModel.js 

const jwt = require('jsonwebtoken');
module.exports = (sequelize, Sequelize) => {
    const UserSchema = sequelize.define('User', {
        first_name: {
            type: Sequelize.STRING,
        },
        last_name: {
            type: Sequelize.STRING,
        },
        });

    // generate token
    UserSchema.genToken = (id) => {
        return jwt.sign({ id }, 'test');
    }

    // user login 
    UserSchema.login = function (body) {
        const User = this;
        return User.findOne({
                where: { email: body.email}
            })
            .then((result) => {
                return result;
            })
            .catch((err) => {
                return Promise.reject(err);
            })
    }
    return UserSchema;
}

когда я импортирую userModel.js в db.js

const Sequelize = require('sequelize');
const config = {};
var db = {};
const sequelize = new Sequelize(config.database, config.username, config.password, {
    host: config.host,
    dialect: config.dialect,
    operatorsAliases: false,
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

db.User = sequelize.import('./../models/userModel');

module.exports = db;

так что мой вопрос, когда я использую переменную db для userModel, как

db.User

Я использую редактор кода VS для кодирования. Так что теперь VS код показывает мне все предложения по моделям секвелизации, но не показывает мои функции для входа в систему и genToken

//suggest
db.User.find()
db.User.findOne()

//but not include these
db.User.login()
db.User.genToken()

Даже когда я использую db.User.login() или db.User.genToken(), он работает так, как я хочу, но сейчас мне придется снова и снова открывать userModel.js, чтобы увидеть имя всех функций. Как лучше импортировать модели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...