5

まず、Node.jsに関してはまったく新しい開発者です。

サンプルエクスプレスアプリケーションの作成を開始しましたが、追加のモジュールを使用して詳細を確認したいと思いました。npmを介して「mysql」モジュールをインストールしました。すべて問題ありません。

次のように、アプリの先頭に追加しました。

var mysql = require('mysql');

すでにご存知のように、expressはディレクトリroutes内にindex.jsファイルを作成しました。mysql変数にアクセスしてこのindex.jsページからdbに接続できるようにしたいのですが、コマンドを使用します。

var connection = mysql.createConnection({
    host     : 'localhost',
    user     : 'root',
    password : 'root',
});

明らかに機能せず、「500 ReferenceError:mysqlisnotdefined」が表示されます。

もちろん、私はこの変数を渡す必要があると確信していますが、私には本当に手がかりがありません、何か良い魂が私を啓発することができますか?私はこれが非常に小さくて基本的なことであることを知っていますが、私はすでにこれを試しました、そしてうまくいかないようです:

... app.get('/', routes.index, mysql); ...

およびindex.js:

exports.index = function(req, res, mysql){ ...
4

2 に答える 2

5

Node.js では、requireモジュールを使用する必要があるファイルにモジュールを含める必要があります。mysqlそのため、ファイルでパッケージを使用する場合はroutes/index.js、そのファイルの先頭で、

var mysql = require('mysql');

複数のファイルでモジュールが必要になる場合があります。これは正常であり、多くの点で良いことです (名前空間の問題などはありません)。

モジュールとパッケージについて詳しく知りたい場合は、次の 2 つのスクリーンキャストに興味があるかもしれません。

于 2012-09-10T16:22:21.570 に答える
0

mysqlオブジェクトを通過させるapp.get()のは正常な反応ですが、考えすぎているのは確かです。

var mysql = require('mysql');の先頭に含めるのと同じくらい簡単ですroutes/index.jsapp.js実際、すべてのデータベースのやり取りがルートで行われる場合、mysql を要求する必要さえないことに気付くかもしれません。

于 2012-09-10T16:24:59.633 に答える