如何在nodejs中访问控制器中的常量variables

我已经在模型文件中定义了一个常量variables,在向表中插入数据时尝试访问这个常量variables,然后显示未定义的variables。 我正在使用ORM和nodejs的sequlaize。 我想为状态定义三个值,如Active = 1,Inactive = 2,Deleted = 3,还有其他的解决scheme来定义这个。 我正在使用续集ORM 4 +版本。

Model code is here var Sequalize = require('sequelize'); var sequalize = require('../../config/db_config'); const ACTIVE = '1'; const INACTIVE = '2'; const DELETED = '3'; const User = sequalize.define('user',{ user_id_pk : { type : Sequelize.INTEGER, allowNull : false, primaryKey : true, autoIncrement : true }, user_type : Sequelize.INTEGER, first_name : Sequelize.STRING, middle_name : Sequelize.STRING, last_name : Sequelize.STRING, password : Sequelize.STRING, email : Sequelize.STRING, mobile_no : Sequelize.STRING, is_email_verified : { type:Sequalize.INTEGER, defaultValue : 0 }, gender : Sequelize.STRING, profile_image: Sequelize.STRING, dob : Sequelize.DATE, is_active : Sequelize.STRING, created_date : Sequelize.DATE, created_by : Sequelize.INTEGER, updated_date : Sequelize.DATE, updated_by : Sequelize.INTEGER, },{ timestamps: false, paranoid: true, underscored: true, freezeTableName: true, tableName: 'user', createdAt:'created_date', updatedAt:'updated_date' }); User.sync({force:false}).then(() => { console.log('Table is created!'); }).catch(err => { console.log('An error occur when table is created!'); }); module.exports = User; Controller code is here userController.saveUser = function(req,res){ console.log(user.ACTIVE);return false; user.findOrCreate({ where:{ first_name: req.body.first_name, email: req.body.email, boltt_code: req.body.boltt_code }, defaults:{ first_name: req.body.fihhrst_name, middle_name : 'Rajeev', last_name : 'Varshney', email: req.body.email, boltt_code: req.body.boltt_code, is_active : '1', } }) .spread( function(user, created) { var msg = ''; if(created){ msg = 'User inserted successfully!'; }else{ msg = 'User already exist!'; } res.status(200).send({error : false,message : msg2, data : user }); }) .catch((err) => { console.log('Oops something wrong! ' + err); }); }; 

如果你想在同一个文件中使用这些variables,你只需要声明它们并使用它。 如果你想从另一个文件访问它们,你必须导出variables:

 const ACTIVE = '1'; const INACTIVE = '2'; const DELETED = '3'; exports.ACTIVE = ACTIVE; exports.INACTIVE = INACTIVE; exports.DELETED = DELETED; 

现在您可以制作文件的需求并访问variables。

 We can initialize constant variable to model instance after creating the model instance. const ACTIVE = 1; const INACTIVE = 2; const DELETED = 3; const user = sequelize.define('user',{..},{ }); User.ACTIVE = ACTIVE; User.INACTIVE = INACTIVE; User.DELETED = DELETED; module.exports = User; 

ModelCore.js文件中不仅导出用户,而且还导出你的常量:

 // ModelCore.js var Sequalize = require('sequelize'); var sequalize = require('../../config/db_config'); const ACTIVE = '1'; const INACTIVE = '2'; const DELETED = '3'; const User = sequalize.define('user', {...}); module.exports = { User, CODES: { ACTIVE, INACTIVE, DELETED } } 

现在将其导入ControllerCode.js中

 // ControllerCode.js const modelCore = require('./path/to/ModelCore'); const user = modelCore.User; const {CODES} = modelCore; //Using codes now should work console.log(CODES.ACTIVE); console.log(CODES.INACTIVE); console.log(CODES.DELETED); // Rest of your Controller code...