Как использовать пользовательское промежуточное программное обеспечение маршрута с Sails.js? (ExpressJS)
Я только что распаковал свежую копию Node framework Sails.js. Он построен на Express 3. В файле /config/routes.js есть этот комментарий:
/**
* (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 = { ...
В той же папке конфигурации я создал файл с именем 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
// ...
}
};
Моя цель состоит в том, чтобы все GET-запросы не Ajax загружали один и тот же файл шаблона, чтобы мое приложение CanJS могло устанавливать состояние приложения на основе URL-адреса (чтобы мое приложение javascript правильно поддерживало закладки).
Я хотел бы запустить этот скрипт в качестве промежуточного программного обеспечения.Может кто-нибудь показать мне, как использовать app.use () в этом случае, чтобы скрипт is_ajax.js запускался перед другой маршрутизацией?
Я предполагаю, что это что-то вроде
var express = require('express');
var app = express();
app.use( require('./is_ajax') );
Только когда я делаю выше, это говорит мне, что он не может найти экспресс-модуль. Я убедился, что express - это модуль внутри Sails 'node_modules. Есть ли другой синтаксис для его загрузки? Я бы предпочел не устанавливать второй экземпляр экспресса вместе с парусами. Есть ли способ получить доступ к исходному экземпляру приложения Sails / Express?