首先,我是关于Node.js的全新开发人员。
我已经开始创建示例快速应用程序,我想使用其他模块来了解更多相关信息。我通过npm安装了“mysql”模块,一切都很好。
我已经在app的开头添加了它,就像这样:
var mysql = require('mysql');
现在,正如您所知,express在目录路由中创建了一个index.js文件:我希望能够从这个index.js页面访问mysql变量以连接到db,但是,使用命令< / p>
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
});
显然不起作用,给出“500 ReferenceError:mysql未定义”。
当然,我确信我需要传递这个变量,但我真的没有任何线索,任何善良的灵魂都可以启发我吗?我知道这是一个非常小的基本的东西,但我已经尝试过了,但似乎没有用:
... app.get('/', routes.index, mysql); ...
和index.js:
exports.index = function(req, res, mysql){ ...
答案 0 :(得分:5)
在Node.js中,您应该在文件中使用require
个模块;因此,如果您想在mysql
文件中使用routes/index.js
包,请在该文件的顶部执行
var mysql = require('mysql');
您最终可能需要多个文件中的模块;这是正常的,在很多方面,这是一件好事(没有命名空间问题等)
如果您想了解有关模块和软件包的更多信息,可能会对这两个截屏视频感兴趣:
答案 1 :(得分:0)
将mysql
对象传递给app.get()
将是正常的反应,但我很确定你过度思考它。
就像在var mysql = require('mysql');
的顶部加入routes/index.js
一样简单。实际上,如果在您的路由中完成所有数据库交互,您可能会发现在app.js
中甚至不需要mysql。