2012-09-10 14 views
5

Prima di tutto, sono uno sviluppatore completamente nuovo per quanto riguarda Node.js.NodeJS che richiede moduli

Ho iniziato a creare un'applicazione Express di esempio e volevo utilizzare un modulo aggiuntivo per saperne di più. Ho installato via npm il modulo "mysql", tutto bene.

ho aggiunto che, all'inizio della app, come questo:.

var mysql = require('mysql'); 

ora, come già sapete, espressa creato un file index.js all'interno dei percorsi di directory: mi piacerebbe essere in grado di accedere alla variabile mysql per la connessione al db da questa pagina index.js ma, utilizzando il comando

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

ovviamente non funziona, dando il "500 ReferenceError: mysql non è definito".

Ovviamente, sono sicuro di aver bisogno di passare questa variabile, ma non ne ho idea, una buona anima può illuminarmi? So che questo è un piccolo e semplice cosa, ma ho provato questo già, e non sembra funzionare:

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

e index.js:

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

risposta

5

In Node.js, dovresti usare i moduli require nei file necessari per utilizzarli; quindi, se si vuole utilizzare il pacchetto mysql nel file routes/index.js, in cima a quel file, fare

var mysql = require('mysql'); 

Si può finire che richiede un modulo in più di un file; questo è normale e, per molti versi, una buona cosa (nessun problema namespacing, etc.)

Se volete saperne di più su moduli e pacchetti, si può essere interessati a questi due screencast:

0

passare l'oggetto mysql attraverso app.get() sarebbe una reazione normale, ma sono abbastanza sicuro che sei ov er-pensandolo.

È semplice come includere var mysql = require('mysql'); nella parte superiore di routes/index.js. In effetti, potresti scoprire che non hai nemmeno bisogno di richiedere mysql in app.js se tutte le interazioni del database sono eseguite nei tuoi percorsi.

Problemi correlati