Let's say we have an error object like this:
const error = new Error('Error');
How can I store this in mongo? Tried to store it in a field with the type Object (Even tried the type Mixed) but it just stores an empty Object.
const UserLogSchema = new Schema(
{
...
error: {
type: Schema.Types.Mixed
}
},
{
timestamps: true
}
);
const UserLog = mongoose.model('UserLog', UserLogSchema);
Adding the error:
const userLog = await UserLog.findOne({ _id: userLogID });
userLog.error = new Error('Error');
await userLog.save();
When we try to get the error later:
const userLog = await UserLog.findOne({ _id: userLogID });
console.log(userLog.error)
It just prints {}
. But the actual error is not empty.
Is it sufficient solution to serialize the error object and store as a json string?
error = new Error('ahhhh');
errorJson = JSON.stringify(error, Object.getOwnPropertyNames(error));
console.log(errorJson);
// output: {"stack":"Error: ahhhh\n at <anonymous>:1:7","message":"ahhhh"}
See similar question here , you could also use serialize-error package.
All you need is to create a schema in mongoose for storing error with two properties like
{
errorDescription: {
type: 'object',
required: true
},
timestamp: {}
}
something like this, and whenever you got an error access this scema and save it it the DB schemaName.save('errroObject',function(obj){})
. This will save you information.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.