FAQ

アプリケーションを構成するにはどうすればいいですか?

この質問には決定的な答えはありません。 The answer depends on the scale of your application and the team that is involved. 可能な限り 柔軟性を持たせるために、Expressは構造的な仮定をしません。

ルートやその他のアプリケーション固有のロジックは、任意のディレクトリ構造において、 好きな数のファイルに保存することができます。 View the following examples for inspiration:

また、Express 用のサードパーティの拡張機能もあり、これらのパターンのいくつかを簡素化します。

モデルを定義するにはどうすればいいですか?

Express にはデータベースという概念はありません。 このコンセプトは サードパーティ製の Node モジュールに残されており、ほぼすべてのデータベースと インターフェイスを使用できます。

モデルを中心とした Express ベースのフレームワークについては LoopBack を参照してください。

どのようにユーザーを認証できますか?

Authentication is another opinionated area that Express does not venture into. 任意の認証スキームを使用できます。 単純なユーザー名/パスワードスキームについては、この例を参照してください。

Expressはどのテンプレートエンジンをサポートしていますか?

Express は、`(path, local, callback) 署名に適合するテンプレートエンジンをサポートしています。 テンプレートエンジンインターフェイスとキャッシュを正規化するには、 consolidate.js プロジェクトをサポートしてください。 リストされていないテンプレートエンジンは引き続きExpress 署名をサポートする可能性があります。

詳しくは、Expressでテンプレートエンジンを使用するを参照してください。

404応答はどのように処理すればいいですか?

Expressでは404応答はエラーの結果ではないため、 エラーハンドラミドルウェアはそれらを捕捉しません。 This behavior is because a 404 response simply indicates the absence of additional work to do; in other words, Express has executed all middleware functions and routes, and found that none of them responded. All you need to do is add a middleware function at the very bottom of the stack (below all other functions) to handle a 404 response:

app.use((req, res, next) => {
res.status(404).send("Sorry can't find that!");
});

express.Router() のインスタンスで実行時にルートを動的に追加することで、ルートはミドルウェア関数に取って代わられません。

エラーハンドラの設定方法は?

他のミドルウェアと同じ方法でエラー処理ミドルウェア を定義します。ただし、3つではなく4つの引数を使用します。 具体的にはシグネチャ(err, req, res, next)を指定します。

app.use((err, req, res, next) => {
console.error(err.stack);
res.status(500).send('Something broke!');
});

詳細については、Error handlingを参照してください。

プレーンHTMLをレンダリングするにはどうすればいいですか?

違います! res.render()関数でHTMLを「レンダリング」する必要はありません。 特定のファイルがある場合は、 res.sendFile() 関数を使用します。 ディレクトリから多くのアセットを提供している場合は、express.static() ミドルウェア関数を使用してください。

Express にはどのバージョンの Node.js が必要ですか?

  • Express 4.x では、Node.js 0.10 以上が必要です。
  • Express 5.x](/en/5x/api) ではNode.js 18 以上が必要です。