How to use custom route middleware with Sails.js? (ExpressJS)

后端 未结 3 1668
独厮守ぢ
独厮守ぢ 2021-01-12 01:15

I\'ve just unpacked a fresh copy of the Node framework Sails.js. It is built on Express 3. In the /config/routes.js file is this comment:

/**
 * (1) Core m         


        
相关标签:
3条回答
  • 2021-01-12 01:32

    I had the same issue of figuring out how to make use of middlewares. They are basically defined in the config/policies.js.
    So, if you want to use middlewares(aka policies) like old style, you can do the following (this may not be the nicest way):

    // config/policies.js
    '*': [ 
      express.logger(),
      function(req, res, next) {
        // do whatever you want to
        // and then call next()
        next();
      }
    ]
    

    However, the real sailjs way is to put all such policies in api/policies/ folder

    0 讨论(0)
  • 2021-01-12 01:35

    To add compress middleware of express, I find this thread and

    sails-middleware-example-issue are very usefull.

    1. install express local: npm install express
    2. load express: var exp = require('express')
    3. add customMiddleware in $app_dir/config/local.js
    express: {
        customMiddleware: function (app) {
          console.log("config of Middleware is called");
          app.use(exp.logger());
          app.use(exp.compress());
          app.use(function (req, res, next) {
            console.log("installed customMiddleware is used");
            next();
          })
        }
      }
    
    0 讨论(0)
  • 2021-01-12 01:47

    You can use policies to achieve this. Save your isAjax function as isAjax.js under your api/policies folder, and change it to just use module.exports instead of module.exports.isAjax. Then in your config/policies.js file, you can specify which controllers/actions to apply the policy to--to run isAjax for every route, just do:

    '*':'isAjax'
    

    in that file.

    0 讨论(0)
提交回复
热议问题