我是nodejs的新手。我有一个带有猫鼬和用户登录的应用程序。mongoDB 中的一些集合是针对所有用户的,而有些集合是针对个人的,例如客户集合是个人的,因此所有用户都有自己的客户集合。当用户登录并获得他的 jwt-token 时,各个 mongoose 模型将被实例化:
var models = require('../models')(userID);
在文件夹 /models 中有一个 index.js:
var Customer = require('./customermodel');
module.exports = function (userID) {
Customer(userID)
}
文件 /models/customermodel.js:
var mongooseCustomer = function(userID) {
var schema = mongoose.Schema({
_id: { type: Number},
Name: { type: String },
Address: { type: String },
}, {collection: userID + 'userID'})
return mongoose.model(userID + 'customer', schema);
}
Module.exports = mongooseCustomer;
当客户从两个不同的浏览器登录并返回错误时会出现问题:123customer
编译后无法覆盖模型。我通过改变解决了这个问题:
var models = require('../models')(userID);
到:
try {
var models = require('../models')(userID);
console.log('Schema was created');
}
catch (err) {
console.log('User is already logged in');
}
现在我的问题是整个设置是否过于复杂,是否有更简洁的方法来处理以动态方式创建模型?