我在node.js中使用sequelize orm。我已经为所有模型(例如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;
}
当我在db.js中导入userModel.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代码向我展示了所有关于sequelize模型的建议,但是却没有展示我用于登录和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才能看到所有函数的名称。如何更好地导入模型?