6

私は現在Node.jsとExpressを学んでおり、mysqlモジュールを使用して複数の一意のページをレンダリングしたいので、ディレクトリのvar connection=mysql.createConnection({user:'root', password: 'root'...etc})下にあるすべてのファイルに行を書き出すのではなくroutes、自分のmysql構成ファイルを呼び出す方が良いと確信しています.各ルーティング ファイル。

ただし、構成ファイルを Express 階層のどこに配置すればよいでしょうか。また、各ルーティング ファイル内からそのファイルを呼び出すにはどうすればよいでしょうか。すべての画像、スタイル シート、および JavaScript ファイルは、ディレクトリの下の特定の各ディレクトリ内に配置する必要があるpublicことはわかっていますが、ルーティング ファイルからアクセスすることを目的とした他のすべてのファイルをどこに配置すればよいかわかりません。

また、Web 上でこの Web アプリケーションを公開したときに、メインapp.jsファイルからroutesディレクトリ配下のファイル、ディレクトリ配下のファイルまで、すべてのファイルをユーザーが見つけられるかどうかも知りたいです。publicその場合、クライアントがアクセスできるディレクトリにデータベース構成ファイルを配置するべきではないと思います...そうですか?つまり、セキュリティ攻撃を回避するために、クライアントがアクセスできるファイルとアクセスできないファイルを確認したいと考えています。

4

2 に答える 2

14

最初の質問「構成ファイルをどこに置くか?」に答えるには: これは少し個人的なことです。アプリケーションのルートに配置します。

config.js:

module.exports = {
  database:{
    host: ""
    user: "..."
  }
}

次に、それを app.js に含めます。

app.js:

...
config = require("./config");
db = config.database;
var connection=mysql.createConnection({user:db.user, ...})

2 つの構成ファイルが必要な場合があることに注意してください。1 つはバージョン管理用で、もう 1 つはマシン専用です。たとえば、開発者が異なれば、データベースへのアクセスも異なる場合があります。でも、今のところ気にする必要はないと思います。

2 番目の質問「私のファイルはすべて公開されていますか?」について: いいえ、(高速ミドルウェアを使用して) 静的として指定したファイルのみが提供されます。

app.js:

...
// Exposes the public folder
app.use(express.static(__dirname + '/public'));
于 2013-06-11T21:10:40.410 に答える
0

どこにでも置くことができます。私は通常/conf、プロジェクト ルートの直下にディレクトリを作成し、そこに構成ファイルを JSON 形式で配置します。

于 2013-06-11T21:05:47.930 に答える