1. ホーム
  2. javascript

[解決済み] Node.js プロジェクトのファイルおよびフォルダの命名規則

2022-05-03 14:31:25

質問

大規模なNode.jsプロジェクトにおけるファイルやフォルダの命名規則とは何ですか?

大文字、キャメルケース、アンダースコアのどれを使うべきですか?

Ie. これは有効とみなされますか?

project-name
    app
        controllers
            someThings.js
            users.js
        models
                someThing.js
                user.js
        views
            some-things
                index.jade
            users
                logIn.jade
                signUp.jade
    ...

解決方法は?

何年かnodeを使用してきて、私は以下のことが言えると思います。 いいえ ディレクトリ/ファイル構造のための規則。しかし、ほとんどの(プロフェッショナルな)エクスプレス・アプリケーションは、次のようなセットアップを使用します。

/
  /bin - scripts, helpers, binaries
  /lib - your application
  /config - your configuration
  /public - your public files
  /test - your tests

この設定を使用した例として ノードジェススターター .

個人的にこの設定を変更したのは

/
  /etc - contains configuration
  /app - front-end javascript files
    /config - loads config
    /models - loads models
  /bin - helper scripts
  /lib - back-end express files
    /config - loads config to app.settings
    /models - loads mongoose models
    /routes - sets up app.get('..')...
  /srv - contains public files
  /usr - contains templates
  /test - contains test files

私見では、後者の方がUnixスタイルのディレクトリ構造によくマッチしていると思います(前者はこれを少し混ぜてしまいますが)。

また、このパターンでファイルを区切るのも良いですね。

lib/index.js

var http = require('http');
var express = require('express');

var app = express();

app.server = http.createServer(app);

require('./config')(app);

require('./models')(app);

require('./routes')(app);

app.server.listen(app.settings.port);

module.exports = app;

lib/static/index.js

var express = require('express');

module.exports = function(app) {

  app.use(express.static(app.settings.static.path));

};

これにより、依存関係に悩まされることなく、すべてのソースコードをきれいにデカップリングすることができます。厄介なJavascriptと戦うための、本当に良い解決策です。実際の例としては 近く この設定を使用しています。

更新(ファイル名)。

ファイル名について、最も一般的なものは 短い , 小文字 ファイル名。もし、ファイルが2つの単語でしか表現できない場合、ほとんどのJavaScriptプロジェクトでは、アンダースコアをデリミタとして使用します。

更新(変数)。

変数については、ファイル名と同じルールが適用されます。ただし、プロトタイプやクラスは、ファイル名と同様に キャメルケース .

更新(styleguides)。