0

私はnode.jsを初めて使用し、Javascriptを使用するのはかなり初めてです(jQueryをjsとして使用する単純なアニメーションは数えません)。Web 開発者として、私は PHP/MySQL から Express/mongo に移行しています。

パフォーマンスに目立った損失がない限り、物事がきちんとしているという考えが好きです。node は非常に急速に発展しているため、現在のバージョンの node のルーティング方法に対する特定の意見や回答を見つけるのは難しいと感じています (私が見つけたほとんどの投稿は無関係で、2 年以上前のもののようです)。

|- app.js
    |- routes
        |- blog.js

私は blog.js をすべてのブログ関連のゲートウェイとして使用しています。これには、関数への GET および POST 要求の登録と、ページ レンダリングの処理が含まれます。

これはすべて、1 回の呼び出しで起動されます。

私のapp.jsには次のものがあります:

... //basic express installation
var db = ... //mongoose database connection

require('./routes/blog')(app, db, '/blog'); //starts the blog up

blog.js は次のようになります。

var db = null;
var basedir = null;

module.exports = function(app, _db, _basedir){
  db = _db;
  basedir = _basedir;

  app.get (basedir, pages.home );
  app.get (basedir + '/show/:id', pages.getBlog );

  /*app.get(basedir + '/*', function(req, res) {
    res.redirect(basedir);
  });*/ 
};

var pages = {
      home : function(req, res) {
        // whatever
    }

    , getBlog : function(req, res) {
        // whatever
    }
}

私はこれが機能することを知っています-私の質問は、これが従来のものであるかどうかです? 推奨されないものでしょうか?メモリの無駄ですか?app.gets を外部ファイルではなく app.js に配置するのはなぜですか? 現在主に使用されているルーティング方法は何ですか (私は複数の小さなアプリケーションをすべて同じサーバー上で開発しているため、app.js をできるだけ最小限に抑えたいと考えています)。

4

1 に答える 1

1

あなたが概説した方法は完全に受け入れられます。私の考えでは、すべてのルートとその他すべてを含む1つの大きな app.js ファイルを保持するよりも好まれます。

多くの人は、特に MVC や MVC に似たパターンに従おうとするときに、概説したものよりもはるかにコードを分離しています。

たとえば、これは私が取り組んでいた定型的なプロジェクトで、分離に関しては少しやり過ぎかもしれません。これは完成品ではなく、他のボイラープレートやフレームワークなどから気に入ったさまざまな部分を取り込んで遊んでいたものです。それ以来、いくつかのことを学びました。

NemoJS - 私の node/express/mongoose/jade/stylus/twitter_btrap ボイラープレート プロジェクト

心に留めておくべきことの 1 つは、分離すればするほど、問題を追跡するのが難しくなる可能性があるということです。ただし、整理整頓を怠る十分な理由にはなりません。本質的に私たちの目標はどれですか?

于 2012-09-17T19:11:49.883 に答える