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。