Connect 2-新しい追加、改善、ドキュメント!



少し前、つまり2011年10月5日、connect 2.0フレームワークの新しいバージョンがリリースされました。 ハブでギャップが認識され、数時間の空き時間が出ました。 2月29日にリリースされたバージョン2.0.1についてすぐに書きます。 2番目のバージョンでは、非常に必要で待望の変更が数多く行われました。


1つのサーバーアプリケーションのHTTPおよびHTTPS!


Connect.Serverは、以前NodeJSコアからnet.Serverから継承されていたため、HTTPアプリケーションとHTTPSアプリケーションの両方を作成するのに不便がありました。 その結果、connect()(以前はconnect.createServer())は、より汎用的な新しい関数になりました。 つまり、app.listen()の呼び出しをスキップできますが、アプリケーションでNodeJSのnet.Serverを使用するだけです。次に例を示します。
var connect = require('connect'), http = require('http'), https = require('https'); tlsOptions = { key: fs.readFileSync('keys/key.pem'), cert: fs.readFileSync('keys/cert.pem') }; var app = connect() .use(function(req, res) { res.end('hello habrahabr\n'); }) http.createServer(app).listen(80); https.createServer(tlsOptions, app).listen(443); 


クエリパーサーの改善


bodyParser()に加えて、着信リクエストを処理するための新しい関数が追加されました:json()アプリケーション/ jsonリクエスト、multipart()マルチパート/フォームデータリクエスト、およびurlencoded()アプリケーション/ x-www-form-urlencodedリクエスト これらはすべて、req.bodyのクエリで送信されたデータにアクセスするための新しい機会を表し、multipart()関数は、req.bodyだけでなく、ダウンロードされたファイルのreq.filesの送信されたパラメーターへのアクセスを提供します。

パーサーを個別に接続できます。
 app.use(connect.json()); app.use(connect.urlencoded()); app.use(connect.multipart()); 

これは次の記述と同等です。
 app.use(connect.bodyParser()); 


カーネルレベルのデフレートとgzipのサポート


Nodeバージョン0.6.0以降、圧縮(zlib.createGzipおよびzlib.createDeflate)をネイティブで使用できるようになったため、それらをサポートするために接続するためにcompress()が追加されました。 アドオンには、ネイティブ機能に渡される圧縮設定があります。

Cookie Parser


cookieParser()を補完する署名が利用可能になりました。 以前は、セッション({secret:string})およびセッション()拡張自体を使用する必要がありました。 これで、req.signedCookiesプロパティを使用して署名付きCookieとセッションを操作したり、req.cookiesプロパティを使用して署名なしCookieを操作したりできます。
 connect() .use(connect.cookieParser('keyboard cat')) .use(function(req, res, next){ res.end(JSON.stringify(req.cookies)); }) 


エラー処理



以前は、エラー処理が問題でした。 すべてのエラーは、connect()自体のerrorHandler()によってキャッチされ、標準ページを発行しました。 これで、コード内でnext(err)を使用しながら、エラーハンドラを再定義できます。
 app.use(function(err, req, res, next){ if (4 == err.status / 100) { // render a client-error page } else { // render a server-error page } }); 


セッション


すでに述べたように、セッション()はシークレットを必要としません。 Cookieの場合、デフォルトでは.maxAgeプロパティはnullでした。つまり、ブラウザーを閉じると、設定されたすべてのCookieが削除されました。

サイド追加


接続するすべてのアドオン()は引き続き機能する必要があります。 それはすべてExpress 2.0と互換性がなく、Express 3.0が登場することを期待しています!

すべての変更のリスト


説明されている重要な変更、およびAPIに影響を与えない他のいくつかの変更が行われました。 すべてのテストはMochaを使用して実施されました。

2.0.1 / 2012-02-29


2.0.0 / 2011-10-05


エクスプレス3を待っています!

ソースとリンク:
TJ Holowaychukブログエントリ
接続ページ
Github接続

Source: https://habr.com/ru/post/J139203/


All Articles