orgads / mongoose-async-hooks

Node.js async hooks support for mongoose

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mongoose-async-hooks

Mongoose plugin providing experimental support for Node.js async_hooks

Build Status

Importing

// Using Node.js `require()`
const mongooseAsyncHooks = require('@mongoosejs/async-hooks');

// Using ES6 imports
import mongooseAsyncHooks from '@mongoosejs/async-hooks';

Examples

It integrates with Node.js 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'));
});

About

Node.js async hooks support for mongoose

License:Apache License 2.0


Languages

Language:JavaScript 100.0%