Mongoose plugin providing experimental support for Node.js async_hooks
// Using Node.js `require()`
const mongooseAsyncHooks = require('@mongoosejs/async-hooks');
// Using ES6 imports
import mongooseAsyncHooks from '@mongoosejs/async-hooks';
const types = [];
const hooks = {
init: (asyncId, type) => {
types.push(type);
}
};
const asyncHook = require('async_hooks').createHook(hooks);
const schema = new Schema({ name: String });
// Add this plugin
schema.plugin(mongooseAsyncHooks);
const MyModel = mongoose.model('MyModel', schema);
asyncHook.enable();
const doc = new MyModel({ name: 'test' });
doc.save(function(error, doc) {
asyncHook.disable();
assert.ok(types.includes('mongoose.MyModel'));
});