2012-09-10 9 views
5

En primer lugar, soy un desarrollador totalmente nuevo con respecto a Node.js.NodeJS requiriendo módulos

Empecé a crear una aplicación de muestra expresa, y quería utilizar un módulo adicional para obtener más información al respecto. He instalado vía npm el módulo "mysql", todo bien.

He añadido que al comienzo de la aplicación de, como esto:.

var mysql = require('mysql'); 

ahora, como ya saben, el expreso de crear un archivo index.js dentro de las rutas de directorio: me gustaría ser capaz de acceder a la variable mysql para conectarse a la base de datos de esta página index.js pero, con el comando

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

, obviamente, no funciona, dando al "500 ReferenceError: MySQL no está definido".

Por supuesto, estoy seguro de que necesito pasar esta variable, pero realmente no tengo ni idea, ¿puede alguna buena alma iluminarme? Sé que esto es una cosa muy pequeña y básica, pero he intentado esto ya, y no parece funcionar:

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

y en index.js:

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

Respuesta

5

En Node.js, debe require módulos en los archivos que necesita para usarlos; Por lo tanto, si desea utilizar el paquete mysqlroutes/index.js en su archivo, en la parte superior de ese archivo, no

var mysql = require('mysql'); 

Usted puede terminar requiriendo un módulo en más de un archivo; esto es normal y, en muchos sentidos, una buena cosa (no hay problemas de los espacios de nombre, etc.)

Si desea obtener más información acerca de los módulos y paquetes, que puede estar interesado en estos dos grabaciones de pantalla:

0

pasar el objeto a través mysqlapp.get() sería una reacción normal, pero estoy bastante seguro de que está ov er-pensando en eso.

Es tan simple como incluir var mysql = require('mysql'); en la parte superior de routes/index.js. De hecho, es posible que ni siquiera necesite requerir mysql en app.js si todas las interacciones de la base de datos se realizan en sus rutas.