NodeJS需要模块

时间:2012-09-10 15:13:19

标签: node.js node-modules

首先,我是关于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){ ...

2 个答案:

答案 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。