私はNodeフレームワークSails.jsの新しいコピーを解凍しました。私はis_ajax.jsと呼ばれるファイルを作成した同じconfigフォルダにSails.jsでカスタムルートミドルウェアを使用するには? (ExpressJS)
/**
* (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 = { ...
:それは、このコメントである/config/routes.jsファイルでエクスプレス3の上に構築されています。
// 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
// ...
}
};
私の目的は、非Ajaxは私のCanJSアプリケーションが(そう、私のjavascriptのアプリケーションが正しくブックマーク-ことができます)URLに基づいてアプリケーションの状態を設定することができるように要求し、すべてが同じテンプレートファイルを読み込むGETすることです。
私はこのスクリプトをミドルウェアとして実行したいと思います。 他のルーティングの前にis_ajax.jsスクリプトを実行させるには、app.use()を使用する方法を教えてください。私はそれを推測している
は、私は上記の操作を行う場合にのみ、それが明示モジュールを見つけることができないことを私に伝えます
var express = require('express');
var app = express();
app.use(require('./is_ajax'));
のようなものです。私はexpressがSailsのnode_modules内のモジュールであることを確認しました。それをロードする別の構文はありますか?私はむしろ帆の上に明示的な2枚目のコピーをインストールする必要はありません。元のSails/Expressアプリケーションインスタンスにアクセスする方法はありますか?
ThxをしてcustomMiddlewareを追加します。(+1)が、私はそれを書いているとは思わない - 震えの余分な矢のためのthx。 – Cody