2016-04-15 5 views
0

私はnode.jsを新しくしています。ユーザー指向の文字列用の定数ミドルウェア

私はEJSを使用してアプリケーションを構築していると私は、私はウェルカムメッセージを表示するように

<%= constants.WELCOME %>を使用することができます.ejsファイル内のように、ユーザー向けの文字列のconstantsファイルを持っているしたいと思います。

app.locals.WELCOME = "Hi and welcome to my app";

が、それはすぐに面倒でしょう:

私は私のような私のapp.jsファイルに地元の人々を定義することができると信じています。

私はconstants.jsファイル持っているしたいと思います:

module.exports = { 
    WELCOME: 'Hi and welcome to my app", 
    ENTER_USERNAME: "Please enter your username", 
    etc. 
} 

を、私は私がどこからでも自分の定数にアクセスすることができますミドルウェア機能app.use(<?>)を定義するかどうかはわかりません。

  1. 私はこれについて正しく考えているのですか、実装する方がいいですか?

  2. どのように定数ファイルを設定してミドルウェアとして使用できますか?これはミドルウェアとしてもカウントされますか?

答えて

1

リクエストやレスポンスに固有のものがない限り、ミドルウェアは必要ありません(たとえば、@ zero298のように国際化したい場合)。あなただけの定数のファイルが利用したい場合は、あなただけ行うことができます。その後、

app.locals = require('./path/to/constants.js'); 

とあなたに尋ねた道constants.js定義します。

あなたが本当にミドルウェアをしたい場合は、署名は次のとおりです。

module.exports = function(req,res,next){ 
    // however you want to manipulate the req or res 
    return next(); 
} 

、その後:

app.use(yourMiddleware); 
+0

それはトリックでした。これで '<%= HI %>'のような定数にアクセスできます。ミドルウェアの署名もありがとう、私はすぐに便利になると確信しています。 – MayNotBe

1

i18nのようなものを使用することをお勧めします。これは主にアプリケーションの言語の国際化に使用されますが、文字列定数を集中化するという利点があります。また、よく使われているJSフレームワークのバインディングもあります。

+0

それはまだ私が何OPだと思う__関数への入力として、魔法の文字列を取ります避けようとしている。 – Paul

+0

@Paulおそらく私は間違っていますが、主に取り組んでいるのは「どこからでも定数にアクセスできます」という点です。 – zero298

+0

それは公正です、私は彼が言うものを見るでしょう。私の考えは、i18ln用のAPIが出力値がどんなものであれアクセスするために文字列を取るので、この場合は別の定数を作成するだけです。それは間違いなくより短い定数であり、多言語シナリオではもちろん有益であるが、私が彼の主な関心事であると考えていたことに対処していない。しかし私が言ったように、我々は見るでしょう。 i18lnはまだ重要であり、良い提案です。 – Paul

関連する問題