Como usar o middleware de rota personalizada com o Sails.js? (ExpressJS)
Acabei de descompactar uma nova cópia do framework Node Sails.js. Ele é construído no Express 3. No arquivo /config/routes.js está este comentário:
/**
* (1) Core middleware
*
* Middleware included with `app.use` is run first, before the router
*/
/**
* (2) Static routes
*
* This object routes static URLs to handler functions--
* In most cases, these functions are actions inside of your controllers.
* For convenience, you can also connect routes directly to views or external URLs.
*
*/
module.exports.routes = { ...
Na mesma pasta de configuração, criei o arquivo chamado is_ajax.js.
// Only run through API on ajax calls.
module.exports.isAjax = function(req, res, next){
if (req.headers['x-requested-with']) {
// Allow sails to process routing
return next();
} else {
// Load main template file
// ...
}
};
Minha intenção é fazer com que as solicitações GET não Ajax carreguem o mesmo arquivo de modelo para que meu aplicativo CanJS possa configurar o estado do aplicativo com base na URL (para que meu aplicativo JavaScript seja adequadamente habilitado para favoritos).
Eu gostaria de executar esse script como middleware.Alguém pode me mostrar como usar o app.use () nesse caso para que o script is_ajax.js seja executado antes de outro roteamento?
Eu estou supondo que é algo como
var express = require('express');
var app = express();
app.use( require('./is_ajax') );
Somente quando eu faço o acima, ele me diz que não pode encontrar o módulo expresso. Eu verifiquei que express é um módulo dentro dos node_modules do Sails. Existe outra sintaxe para carregá-lo? Eu prefiro não ter que instalar uma segunda cópia do expresso ao lado das velas. Existe uma maneira de acessar a instância original do aplicativo Sails / Express?