NodeJS需要模块

首先,关于Node.js,我是一个全新的开发人员。

我已经开始创build一个示例快速应用程序,我想使用一个额外的模块来了解更多。 我已经通过npm安装了“mysql”模块,一切正常。

我在应用程序的开始处添加了它,如下所示:

var mysql = require('mysql'); 

现在,正如你已经知道的那样,express在目录routes中创build了一个index.js文件:我希望能够访问mysqlvariables,从这个index.js页面连接到db,但是使用命令

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

显然不起作用,给“500 ReferenceError:mysql没有定义”。

当然,我相信我需要通过这个variables,但是我真的没有线索,任何好的灵魂能够赐教吗? 我知道这是一个非常小的和基本的东西,但我已经试过了,似乎并没有工作:

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

和index.js:

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

在Node.js中,你require在你需要的文件中使用模块; 所以,如果你想在你的routes/index.js文件中使用mysql包,那么在那个文件的顶部

 var mysql = require('mysql'); 

您可能最终需要一个以上的文件模块; 这是很正常的,在许多方面,这是一件好事(没有命名空间问题等)

如果您想了解更多关于模块和软件包的知识,您可能会对这两个屏幕录像感兴趣:

  • 模块: http : //nodecasts.net/episodes/3-modules
  • 软件包&npm: http : //nodecasts.net/episodes/4-packages-and-npm

通过app.get()传递mysql对象将是一个正常的反应,但我敢肯定,你是在过度思考。

这就像包含var mysql = require('mysql');routes/index.js的顶部。 事实上,如果所有数据库交互都在你的路由中完成,你可能会发现你甚至不需要在app.js使用mysql。