Express.JSの詳しい使い方_node.js
ノードをインストール (ダウンロード) した後、マシン上にディレクトリを作成し、最初のアプリケーションを起動します。
$ mkdir hello-world
このディレクトリでは、他のノード パッケージと何ら変わらないアプリケーションの「パッケージ」を定義します。ファイル ディレクトリ内の json ファイルは、依存関係を明確に定義します。予期せぬ事態を避けるために、「3.x」以外のバージョンをインストールするのではなく、npm コマンドを使用して、任意の最新バージョンの Express を入手できます。
{ "name": "hello-world", "description": "hello world test app", "version": "0.0.1", "private": true, "dependencies": { "express": "3.x" } }
これでパッケージが完成しました。このディレクトリ内の json ファイルを使用すると、npm(1) を使用してこの依存関係をインストールできます。この場合は、次のように入力するだけです:
$ npm install
npm が完了すると、/node_modules ディレクトリに Express 3.x の依存関係が作成されます。次のスニペットは Express ツリーとその依存関係を示しているため、npm ls を使用してこれを確認できます。
$ npm ls hello-world@0.0.1 /private/tmp └─┬ express@3.0.0beta7 ├── commander@0.6.1 ├─┬ connect@2.3.9 │ ├── bytes@0.1.0 │ ├── cookie@0.0.4 │ ├── crc@0.2.0 │ ├── formidable@1.0.11 │ └── qs@0.4.2 ├── cookie@0.0.3 ├── debug@0.7.0 ├── fresh@0.1.0 ├── methods@0.0.1 ├── mkdirp@0.3.3 ├── range-parser@0.0.4 ├─┬ response-send@0.0.1 │ └── crc@0.2.0 └─┬ send@0.0.3 └── mime@1.2.6
次に、アプリケーション自体を作成します。app.js または server.js というファイルを作成し、express をインポートしてから、express() を使用して新しいアプリケーションを作成します。
var express = require('express'); var app = express();
Express はこれらのオブジェクトを拡張して、コンテンツの長さを追加するだけでなく、res.send() などの高レベルのインターフェイスを提供します。
app.get('/hello.txt', function(req, res){ res.send('Hello World'); });
と同じパラメータを受け入れます。
var server = app.listen(3000, function() { console.log('Listening on port %d', server.address().port); });
Express チームは、express-generator(1) という名前の便利なプロジェクト ジェネレーターを管理しています。 npm を使用して Express-generator をグローバルにインストールすると、コンピューター上のどこからでもアクセスできます:
$ npm install -g express-generator
Usage: express [options] Options: -h, --help output usage information -V, --version output the version number -e, --ejs add ejs engine support (defaults to jade) -H, --hogan add hogan.js engine support -c, --css add stylesheet support (less|stylus|compass) (defaults to plain css) -f, --force force on non-empty directory
$ express --css stylus myapp create : myapp create : myapp/package.json create : myapp/app.js create : myapp/public create : myapp/public/javascripts create : myapp/public/images create : myapp/public/stylesheets create : myapp/public/stylesheets/style.styl create : myapp/routes create : myapp/routes/index.js create : myapp/views create : myapp/views/index.jade create : myapp/views/layout.jade install dependencies: $ cd myapp && npm install run the app: $ DEBUG=myapp node app
それでは始めましょう。
$ npm start
エラー処理
エラー処理ミドルウェアは通常のミドルウェアと同じように定義されますが、これは関数シグネチャ (err、req、res、next) の 4 つのパラメーターの数を定義する必要があります。
app.use(function(err, req, res, next){ console.error(err.stack); res.send(500, 'Something broke!'); });
var bodyParser = require('body-parser'); var methodOverride = require('method-override'); app.use(bodyParser()); app.use(methodOverride()); app.use(app.router); app.use(function(err, req, res, next){ // logic });
組織化された高レベルのフレームワークを構築するには、通常のミドルウェアを定義するのと同じように、これらのエラー処理ミドルウェアをいくつか定義できます。たとえば、これらに加えて、XHR リクエストのエラー ハンドラーを定義するとします。
var bodyParser = require('body-parser'); var methodOverride = require('method-override'); app.use(bodyParser()); app.use(methodOverride()); app.use(app.router); app.use(logErrors); app.use(clientErrorHandler); app.use(errorHandler);
function logErrors(err, req, res, next) { console.error(err.stack); next(err); }
function clientErrorHandler(err, req, res, next) { if (req.xhr) { res.send(500, { error: 'Something blew up!' }); } else { next(err); } }
function errorHandler(err, req, res, next) { res.status(500); res.render('error', { error: err }); }
このセクションでは、Redis を使用してオンライン ユーザーの数を追跡する (小規模な) アプリケーションについて詳しく説明します。まずパッケージを作成します。 json ファイルには 2 つの添付ファイルが含まれており、1 つは Redis クライアント用、もう 1 つは Express 自体用です。また、redis がラップされ、$redis-server 経由で実行されていることを確認してください。
{ "name": "app", "version": "0.0.1", "dependencies": { "express": "3.x", "redis": "*" } }
var express = require('express'); var redis = require('redis'); var db = redis.createClient(); var app = express();
app.use(function(req, res, next){ var ua = req.headers['user-agent']; db.zadd('online', Date.now(), ua, next); });
最后,我们通过一个url使用它,并绑定到一个端口!这就完了,在一个新浏览器访问这个应用程序,您会看到在线人数增加。
app.get('/', function(req, res){ res.send(req.online.length + ' users online'); }); app.listen(3000);
Expree的反向代理
在反向代理背后使用Expree,如Varnish 或Nginx是微不足道的,然而它需要配置。通过启用“信任代理”设置app.enable(“trust proxy”),Express有一些反向代理的技巧,X-Forwarded - *头字段可能是可信的,否则他们可能很容易被欺骗。
启用该设置有一些微妙的影响。第一个是X-Forwarded-Proto可能被反向代理设定,告诉app那是https或者只是简单的http。这个值由req.protocol反射。
第二个变化是req.ip和req.ips值将填充X-Forwarded-For地址的列表。
调试Express
Express内部使用调试模块记录路径匹配和应用程序模式的信息。要看到这条信息,只要简单设置调试环境变量为express:*,当启动应用程序后,你将在控制台看以调试信息。
$ DEBUG=express:* node ./bin/www
运行这个hello world示例将打印以下内容:
express:application booting in development mode +0ms express:router defined get /hello.txt +0ms express:router defined get /hello.txt +1ms
另外, 表达可执行(生成器)生成的程序也使用调试模块,默认作用域是my-application调试命名空间。
你可以用以下命令启用这些调试语句
$ DEBUG=my-application node ./bin/www
关于调试的更多信息,请参见调试 指南

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

楽なWebページレイアウトのためにjQueryを活用する:8本質的なプラグイン jQueryは、Webページのレイアウトを大幅に簡素化します。 この記事では、プロセスを合理化する8つの強力なjQueryプラグイン、特に手動のウェブサイトの作成に役立ちます

それで、あなたはここで、Ajaxと呼ばれるこのことについてすべてを学ぶ準備ができています。しかし、それは正確には何ですか? Ajaxという用語は、動的でインタラクティブなWebコンテンツを作成するために使用されるテクノロジーのゆるいグループ化を指します。 Ajaxという用語は、もともとJesse Jによって造られました

10の楽しいjQueryゲームプラグインして、あなたのウェブサイトをより魅力的にし、ユーザーの粘着性を高めます! Flashは依然としてカジュアルなWebゲームを開発するのに最適なソフトウェアですが、jQueryは驚くべき効果を生み出すこともできます。また、純粋なアクションフラッシュゲームに匹敵するものではありませんが、場合によってはブラウザで予期せぬ楽しみもできます。 jquery tic toeゲーム ゲームプログラミングの「Hello World」には、JQueryバージョンがあります。 ソースコード jQueryクレイジーワードコンポジションゲーム これは空白のゲームであり、単語の文脈を知らないために奇妙な結果を生み出すことができます。 ソースコード jquery鉱山の掃引ゲーム

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

このチュートリアルでは、jQueryを使用して魅惑的な視差の背景効果を作成する方法を示しています。 見事な視覚的な深さを作成するレイヤー画像を備えたヘッダーバナーを構築します。 更新されたプラグインは、jQuery 1.6.4以降で動作します。 ダウンロードしてください

このチュートリアルでは、Ajaxを介してロードされた動的なページボックスの作成を示しており、フルページのリロードなしでインスタントリフレッシュを可能にします。 JQueryとJavaScriptを活用します。カスタムのFacebookスタイルのコンテンツボックスローダーと考えてください。 重要な概念: ajaxとjquery

このJavaScriptライブラリは、Cookieに依存せずにセッションデータを管理するためにWindow.nameプロパティを活用します。 ブラウザ全体でセッション変数を保存および取得するための堅牢なソリューションを提供します。 ライブラリは、セッションの3つのコア方法を提供します
