node / mongoose: getting to request-context in mongoose middleware

前端 未结 3 1938
花落未央
花落未央 2020-12-10 07:13

I\'m using mongoose (on node) and I\'m trying to add some additional fields to a model on save by using Mongoose middleware.

I\'m taking the often-used case of want

3条回答
  •  失恋的感觉
    2020-12-10 07:54

    It can be done with 'request-context'. Step to do:

    Install request-context

    npm i request-context --save
    

    In your app/server init file:

    var express = require('express'),
    app = express();
    //You awesome code ...
    const contextService = require('request-context');
    app.use(contextService.middleware('request'));
    //Add the middleware 
    app.all('*', function(req, res, next) {
      contextService.set('request.req', req);
      next();
    })
    

    In you mongoose model:

    const contextService = require('request-context');
    //Your model define
    schema.pre('save', function (next) {
      req = contextService.get('request.req');
      // your awesome code
      next()
    })
    

提交回复
热议问题