私はnodejsが初めてです。私はマングースとユーザーログインを備えたアプリケーションを持っています。mongoDB のコレクションには、すべてのユーザー向けのものと、すべてのユーザーが自分の顧客のコレクションを持つように個別の顧客コレクションなどがあります。ユーザーがログインして jwt-token を取得すると、個々のマングース モデルがインスタンス化されます。
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;
この問題は、顧客が 2 つの異なるブラウザーからログインし、次のエラーを返した場合に発生します: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');
}
ここで私の質問は、セットアップ全体が複雑すぎて、動的な方法でモデルを作成するためのよりクリーンな方法があるかどうかです。