此页面旨在提供 Sails.js 框架所有核心适配器的最新完整列表,以及一些最强大的社区适配器的参考。
所有支持的适配器都可以通过大致相同的方式进行配置:传入 Sails/Waterline 适配器 (adapter
) 以及连接 URL (url
)。有关配置数据存储的更多信息,请参阅 sails.config.datastores。
连接遇到问题?请确保检查连接 URL 中是否存在拼写错误。如果这不起作用,请查看数据库提供商的文档,或 获取帮助。
以下核心适配器由 Sails.js 核心团队维护、测试和使用。
想帮助维护核心适配器?请先阅读 Sails 项目贡献指南。
数据库技术 | 适配器 | 连接 URL 结构 | 适用于生产环境? |
---|---|---|---|
MySQL | require('sails-mysql') | mysql://user:password@host:port/database |
是 |
PostgreSQL | require('sails-postgresql') | postgresql://user:password@host:port/database |
是 |
MongoDB | require('sails-mongo') | mongodb://user:password@host:port/database |
是 |
本地磁盘/内存 | (内置,请参阅 sails-disk) | n/a | 否! |
MySQL 是世界上最流行的关系型数据库。
npm install sails-mysql --save
adapter: 'sails-mysql',
url: 'mysql://user:password@host:port/database',
- MySQL 的默认端口为
3306
。- 如果您计划在数据中保存特殊字符(例如表情符号),则可能需要设置数据存储的
charset
配置选项。要允许表情符号,请使用charset: 'utf8mb4'
。您可以在模型属性中使用columnType
设置 来设置字符集。- 对于像 MySQL 和 PostgreSQL 这样的关系型数据库服务器,您可能需要首先使用 SequelPro 等免费工具或在命令行上的 MySQL REPL 中创建一个“数据库”(如果您是经验丰富的 SQL 用户)。习惯上会为您的应用程序专门创建一个数据库供其使用。
- sails-mysql 适配器也与 Amazon Aurora 数据库 100% 兼容。
如果发现您的 Sails 应用程序与 MySQL 交互时遇到“握手空闲超时”错误,则可以使用 connectTimeout
选项增加超时时间。这 通常仅在 查询与计算密集型操作(例如,编译客户端 TypeScript 文件或在开发过程中运行 Webpack)并行运行时才需要。
例如,您可以将超时时间延长到 20 秒
adapter: 'sails-mysql',
url: 'mysql://user:password@host:port/database',
connectTimeout: 20000
PostgreSQL 是一种具有强大功能的现代关系型数据库。
npm install sails-postgresql --save
adapter: 'sails-postgresql',
url: 'postgresql://user:password@host:port/database',
- PostgreSQL 的默认端口为
5432
。- 除了
adapter
和url
之外,您可能还需要设置ssl: true
。这取决于您的 PostgreSQL 数据库服务器托管的位置。例如,连接到 Heroku 托管的 PostgreSQL 服务时需要ssl: true
。- 请注意,在
pg
8.0 版中,语法已更新为ssl: { rejectUnauthorized: false }
。- 兼容大多数版本的 Postgres。请参阅 此问题,了解有关与 Postgres >12 兼容性的更多信息。
MongoDB 是领先的 NoSQL 数据库。
npm install sails-mongo --save
adapter: 'sails-mongo',
url: 'mongodb://user:password@host:port/database',
- MongoDB 的默认端口为
27017
。- 如果您的 Mongo 部署在单独的数据库中跟踪其内部凭据,则可能需要通过将
?authSource=theotherdb
附加到连接 URL 的末尾来命名该数据库。- 通过连接 URL 中的查询字符串提供的其他 Mongo 配置设置 将传递到底层的 Mongo 驱动程序。
写入计算机的硬盘或已挂载的网络驱动器。不适用于大规模生产部署,但非常适合小型项目,并且在您可能并非始终都已设置数据库的环境中进行开发至关重要。此适配器与 Sails 捆绑在一起,并且无需任何配置即可开箱即用。
您还可以以仅内存模式操作sails-disk
。有关详细信息,请参阅下面的设置表。
在每个 Sails 应用程序中都可开箱即用。
默认情况下配置为默认数据库。
sails-disk
的可选数据存储设置设置 | 描述 | 类型 | 默认值 |
---|---|---|---|
dir |
放置数据库文件所在的目录。适配器为每个模型创建一个文件。 | .tmp/localDiskDb |
|
inMemoryOnly |
如果为true ,则不会将任何数据库文件写入磁盘。相反,所有数据都将存储在内存中(并在应用程序停止运行时丢失)。 |
false |
- 您可以通过在
config/datastores.js
中的default
数据存储中添加设置来配置默认的sails-disk
适配器。
您的数据库是否不受任何核心适配器支持?好消息!Sails.js 和 Waterline 有许多不同的社区数据库适配器 可在 NPM 上使用。
以下是一些亮点
数据库技术 | 适配器 | 维护者 | 实现的接口 | 稳定版本 |
---|---|---|---|---|
Redis | sails-redis | Ryan Clough / Solnet Solutions | 语义、可查询 | |
MS SQL Server | sails-MSSQLserver | misterGF | 语义、可查询 | |
OrientDB | sails-orientDB | appscot | 语义、可查询、关联、可迁移 | |
Oracle | sails-oracleDB | atiertant | 语义、可查询 | |
Oracle (AnyPresence) | waterline-oracle-adapter | AnyPresence | 语义、可查询 | |
Oracle (存储过程) | sails-oracle-SP | Buto 和 nethoncho | 语义、可查询 | |
SAP HANA DB | sails-HANA | Enrico Battistella | 语义、可查询 | |
SAP HANA (AnyPresence) | waterline-SAP-HANA-adapter | AnyPresence | 语义、可查询 | |
IBM DB2 | sails-DB2 | ibuildings Italia & Vincenzo Ferrari | 语义、可查询 | |
ServiceNow SOAP | waterline-ServiceNow-SOAP | Sungard Availability Services | 语义、可查询 | |
Cassandra | sails-cassandra | dtoubelis | 语义、可迁移、可迭代 | |
Solr | sails-solr | sajov | 语义、可迁移、可查询 | |
FileMaker 数据库 | sails-FileMaker | Geist Interactive | 语义 | |
Apache Derby | sails-derby | dash- | 语义、可查询、关联、SQL | |
REST API(通用) | sails-REST | zohararad | 语义 |
如果您在此页面上看到过时信息,或者您想添加自己制作的适配器,请向此文件提交拉取请求,更新上面的社区适配器表。
请注意,要列在此页面上,适配器必须
url
(如果适用)。如果您发现上述任何社区适配器(即,针对 NPM 上发布的最新稳定版本,而不是针对 GitHub 上的代码)不符合这些约定中的任何一个,请与适配器的维护者联系。如果您无法联系到他们或需要进一步的帮助,请 与 Sails 核心团队成员联系。