【问题标题】:Single MySQL connection over multiple modules in NodeJSNodeJS中多个模块的单个MySQL连接
【发布时间】:2016-07-22 04:55:01
【问题描述】:

我要使用 NodeJS。不过,像往常一样,会出现一些问题。

/controllers 中的控制器很少,我将其包含在 /routes.js 中; 我正在使用node-mysql 作为数据库包装器,我真的想知道是否有更好的替代方法来替代我目前正在做的事情。

目前,在routes.js,我正在连接到数据库,如下所示:

pool            = require('mysql').createPool({ host: 'host', user: 'root', password: 'pass', database: 'db' })

现在,我真的很想在我的 User 控制器中使用 mysql,这已经是 routes 文件所必需的。

我知道我需要再次要求并连接到 User 控制器中的 mysql,但这是一个好习惯吗?

除了要求node-mysql 并连接到每个控制器中的数据库之外,还有什么更好的选择吗?

我这里有什么遗漏吗?

谢谢!

【问题讨论】:

    标签: node.js


    【解决方案1】:

    对于node-mysql,参考这个this answer

    或者你可以使用Sequelize,你可以阅读this article来了解Sequelize的优势。

    根据您的要求,

    如果您要使用 Sequelize, 配置连接池,将sequelize模型导入js文件,直接查询db即可。

    【讨论】:

    • 我认为您没有正确理解我的问题。我知道连接池,如果您查看我粘贴的代码,我已经在这样做了。我只是想知道在每个控制器中一次又一次地要求node-mysql 是否是一种不好的做法。如果是,还有什么更好的选择。
    • 要求 node-mysql 一次又一次不会有什么不同,但这不是正确的方法。但是你可以导出var pool = require('mysql').createPool(opts); 并使用它。
    • 好的,所以我收集到的是,对于我倾向于经常初始化的任何对象,最好将其“初始化”在一个模块中并将其导出到我需要使用它的任何地方。我感觉合理。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多