5

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

我已经开始创建一个示例 express 应用程序,并且我想使用一个附加模块来了解它的更多信息。我已经通过 npm 安装了“mysql”模块,一切正常。

我在 app.'s 的开头添加了它,如下所示:

var mysql = require('mysql');

现在,如您所知,express 在目录路由中创建了一个 index.js 文件:我希望能够访问 mysql 变量以从此 index.js 页面连接到数据库,但是,使用命令

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

显然不起作用,给出“500 ReferenceError:mysql is not defined”。

当然,我确定我需要传递这个变量,但我真的没有头绪,有没有好的灵魂可以启发我?我知道这是一件非常小而基本的事情,但我已经尝试过了,但似乎没有用:

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

在 index.js 上:

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

2 回答 2

5

在 Node.js 中,您应该将require模块放在需要使用它们的文件中;因此,如果您想在文件中使用该mysql包,请routes/index.js在该文件的顶部执行

var mysql = require('mysql');

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

如果您想了解更多关于模块和包的信息,您可能会对这两个截屏视频感兴趣:

于 2012-09-10T16:22:21.570 回答
0

mysql物体通过app.get()是正常的反应,但我很确定你想多了。

它就像包含var mysql = require('mysql');在顶部一样简单routes/index.jsapp.js事实上,如果所有数据库交互都在您的路由中完成,您可能会发现甚至不需要 mysql in 。

于 2012-09-10T16:24:59.633 回答