Sails.js 1.0:如何在没有 Waterline 的情况下连接和使用遗留 MySQL 数据库?

Sails.js 1.0: How to connect and use legacy MySQL database without Waterline?

我们有一个带有 MySQL 数据库的遗留应用程序。它的后端目前是用 PHP.

编写的

我们现在正在改进后端并在 node.js 中构建后端。技术团队已决定使用 sails.js 作为构建此后端的框架。

Sails.js 默认使用 Waterline (ORM)。

我们想要的是能够连接到我们的遗留 MySQL 数据库并在我们的 sails 应用程序中删除 orm 支持。

在初始化新的 sails 应用程序时,我通过了一个 without 选项来在我的应用程序中选择退出 orm。

现在,我很困惑我应该在哪里(以及如何)连接到一个地方的遗留 MySQL 数据库,并使该连接可用于我们将要访问的所有 controllers/action 文件有。

我是否还必须使用 sails-mysql,还是应该使用任何其他可以帮助我连接到数据库的适配器?这段代码应该放在哪里?在辅助方法中 ?

如有任何帮助,我们将不胜感激!

如果您使用 --without orm 创建应用程序,那么您基本上禁用了 Waterline/Sails 提供的所有 ORM/model/database 功能。这意味着,您不能使用 Sails 中记录的模型概念。

您始终可以使用其他方法,就像在任何其他 node.js 项目中一样。需要模块,并遵循他们的文档。检查 http://docs.sequelizejs.com/ 以获得众多可用选项之一。

关于使用 sails-mysql,这只是水印的 "adapter",告诉您要使用 'mysql' 的连接。但这只有在您的应用程序中配置了 ORM 时才可用。

如果我要在没有 ORM 的情况下开发应用程序,我会创建 "services",然后在控制器中调用。也就是说,在 /api/services 中构建您的业务逻辑(如果文件夹不存在则创建该文件夹),然后在那里开发您的解决方案。最后从你的控制器中调用它们。你可以查看我的另一个答案 here 作为例子