How to use custom route middleware with Sails.js? (ExpressJS)
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.
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
To add compress middleware of express, I find this thread and
sails-middleware-example-issue are very usefull.
- install express local:
npm install express
- load express:
var exp = require('express')
- 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(); }) } }