我已经创建了我的第一个Node.js API,现在我正处于实时推送代码时需要初始管理员的步骤。
我的应用程序的工作方式是,有一个管理员可以向用户发送邀请,用户只能注册该邀请。我的模型看起来像这样:
var userSchema = new Schema({
"email" : { type: String, unique: true },
"pass" : { type: String, required: true },
"type" : { type: String, required: true },
"invitation" : String
});
字段type
可以包含值admin
或regular
。对于每个用户创建,都会进行电子邮件/邀请检查,以便在没有邀请的情况下无法创建用户。
我的一个想法是每次打开数据库时都要检查一下:
var mongoose = require("mongoose");
mongoose.connection.on('open', function(){
// get all users
User.find({}, function(err, data){
// if there are no users at all, create first admin
});
});
第一个管理员的凭据我会保留在env变量中并像这样获取它们:
var firstAdminEmail = process.env.FIRST_ADMIN_EMAIL;
var firstAdminPass = process.env.FIRST_ADMIN_PASS;
为了防止用户创建中的邀请检查,我将创建一个单独的函数,该函数将忽略用户创建中的邀请。
您如何看待这个?创建第一个管理员的最佳做法是什么?