编辑页面

常见问题

我可以使用环境变量吗?

#

可以!就像任何 Node 应用程序一样,您的环境变量可作为 process.env 使用。

Sails 还内置支持创建您自己的自定义配置设置,这些设置将直接在 sails.config 上公开。无论自定义还是内置,sails.config 中的任何配置属性都可以使用环境变量覆盖。有关详细信息,请参阅关于配置的概念文档。

我应该将生产数据库凭据放在哪里?其他设置呢?

#

向 Sails 应用程序添加配置的最简单方法是修改 config/ 中的文件或添加新文件。Sails 原生支持环境特定的配置加载,因此您可以使用 config/env/production.js。同样,有关详细信息,请参阅关于配置的概念文档。

但是有时您不希望将某些配置信息放入您的存储库中。将此类配置放入环境变量是最佳位置。

也就是说,对于开发(例如在您的笔记本电脑上)使用环境变量有时可能很麻烦。因此,对于您的其他部署/机器特定设置,即您希望保密的任何类型的凭据,您还可以使用 config/local.js 文件。默认情况下,此文件包含在您的 .gitignore 文件中,这有助于防止您无意中将您的凭据提交到您的代码存储库。

config/local.js

// Local configuration
// 
// Included in the .gitignore by default,
// this is where you include configuration overrides for your local system
// or for a production deployment.
//
// For example, to use port 80 on the local machine, override the `port` config
module.exports = {
    port: 80,
    environment: 'production',
    adapters: {
        mysql: {
            user: 'root',
            password: '12345'
        }
    }
}

如何将我的 Sails 应用程序部署到服务器?

#

如果您使用的是 Heroku 或 Modulus 等 PaaS,则很容易:只需按照其说明操作即可!

否则,获取服务器的 IP 地址并使用 ssh 登录。然后 npm install -g sailsnpm install -g forever 从 NPM 全局安装 Sails 和 forever(如果服务器上第一次安装)。最后,将您的项目 git clone(或者如果它不在 git 存储库中,则使用 scp 将其复制到服务器上)到服务器上的新文件夹中,cd 到该文件夹,然后运行 forever start app.js

在性能方面我应该期待什么?

#

Sails 的基线性能与您期望的标准 Node.js/Express 应用程序相当。换句话说,它很快!我们在 Sails 核心进行了一些优化,但我们的主要重点是不破坏我们从依赖项中免费获得的东西。有关快速简易的基准测试,请参阅http://serdardogruyol.com/sails-vs-rails-a-quick-and-dirty-benchmark

生产环境 Sails 应用程序中最常见的性能瓶颈是数据库。在具有不断增长的用户群的应用程序的生命周期中,在您的表/集合上设置良好的索引并使用返回分页结果的查询变得越来越重要。最终,随着您的生产数据库增长到包含数千万条记录,您将开始手动查找和优化缓慢的查询(通过调用.query().native(),或通过使用来自 NPM 的底层数据库驱动程序)。

关于 connect session 内存存储的警告是什么?

#

如果您在 Sails 应用程序中使用会话,则不应在生产环境中使用内置的内存存储。内存会话存储是仅限开发的工具,无法扩展到多台服务器;即使您只有一台服务器,它也不是特别高效(请参阅#3099#2779)。

有关配置生产会话存储的说明,请参阅sails.config.session。如果您想完全禁用会话支持,请在应用程序的 .sailsrc 文件中关闭 session 钩子。

"hooks": {
  "session": false
}

是否缺少某些内容?

如果您发现我们错过了或可以改进的内容,请按照此链接并向 sails 存储库提交拉取请求。一旦我们合并它,更改将在网站下次部署时反映出来。

概念