WelingtonMonteiro / mongoose-history-trace

Plugin mongoose for history logs schemas
MIT License
20 stars 7 forks source link

addLoggedUser not working? #4

Open romulotorres opened 3 years ago

romulotorres commented 3 years ago

Hello guys.

I'm trying use the plugin, but my history not works. My model:

`import mongoose from "mongoose"; import { validateEmail } from "../utils/validations"; import { ROLES } from "./Enums"; import mongooseHistoryTrace from "mongoose-history-trace";

const UserSchema = new mongoose.Schema({ name: { type: String, required: [true, "Please provide a valid name."], maxlength: [60, "Name cannot be more than 60 characters"], }, email: { type: String, validate: [validateEmail, "Please fill a valid email address"], required: [true, "Please provide a valid email."], }, password: { type: String, required: [true, "Please provide a valid password."], }, role: { type: String, enum: ROLES, required: [true, "Please provide a valid role."], }, });

const options = { userPaths: ["id", "role"] }; UserSchema.plugin(mongooseHistoryTrace, options);

export default mongoose.models.User || mongoose.model("User", UserSchema);`

My Service:

`import dbConnect from "../utils/dbConnect"; import bcrypt from "bcrypt"; import User from "../models/User"; i const saltRounds = 10;

const create = async (data, loggedUser) => { await dbConnect(); const { password, ...others } = data; const encryptedPassword = bcrypt.hashSync(password, saltRounds);

// LoggedUser content: { id: '72cb88ad16a18334df7d74a2', role: 'ADMINISTRATOR'} console.log("loggedUser", loggedUser); User.addLoggedUser(loggedUser); const user = await User.create({ ...others, password: encryptedPassword, }); return user; };`

My console show a warning: MONGOOSE-HISTORY-TRACE: path: {user} is required. Example: Model.addLoggedUser(req.user)

Any help please?

romulotorres commented 3 years ago

Consegui contornar o problema. Aparentemente, quando não se mantém uma conexão persistente ao banco de dados, o plugin não consegue conectar ao banco, e o timeout é referente à falta de conexão. Assim, precisei adicionar (em duplicidade) a linha de conexão no momento da aplicação do plugin:

const options = { connectionUri: process.env.MONGODB_URI, userPaths: ["id", "role"], }; UserSchema.plugin(mongooseHistoryTrace, options);

Detalhe... em paralelo estou tentando resolver a questão das conexões de banco no mongodb. No caso do serveless, eu esperaria que a conexão fosse finalizada ao final da execução, o que ainda não está ocorrendo. Mas vamos que vamos.