[解決済み] 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)。
関連
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】Node.js Error: Cannot find module express
-
[解決済み】「X-Frame-Options」を「SAMEORIGIN」に設定したため、フレームでの表示を拒否された。
-
jq は html ページとデータを動的に分割する。
-
[解決済み] Node.jsでファイルを書き込む
-
[解決済み] Node.jsでディレクトリに存在するすべてのファイル名のリストを取得する方法は?
-
[解決済み] Pythonの変数名や関数名の命名規則について教えてください。
-
[解決済み] Node.js クイックファイルサーバ (静的ファイルオーバーHTTP)
-
[解決済み] C#の定数の命名規則?
-
[解決済み】コーディング規約 - 列挙型の命名法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vueネットワークリクエストソリューション ネイティブネットワークリクエストとjsネットワークリクエストライブラリ
-
jQueryのコピーオブジェクトの説明
-
Vueにシンプルなメモ帳機能を実装
-
vueディレクティブv-bindの使用と注意点
-
[解決済み] テスト
-
[解決済み】TypeScript-のAngular Frameworkエラー - "exportAsがngFormに設定されたディレクティブはありません"
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
nodejs unhandledPromiseRejectionWarning メッセージ
-
nullのプロパティinnerHTMLを読み取れません エラーメッセージ