Javascript 在Sails.js中处理数据库环境配置
我的问题与以下引述有关: 注意:如果模型使用了适配器的任何连接,那么该适配器的所有连接都将加载到sails.lift上,无论模型是否实际使用它们。在上面的示例中,如果将模型配置为使用localMysql连接,则localMysql和remoteMysql都将在运行时尝试连接。因此,最好按环境将连接配置拆分,并将其保存到相应的特定于环境的配置文件中,或者注释掉不希望激活的任何连接 如何配置生产服务器的连接 我的connections.js文件如下所示:Javascript 在Sails.js中处理数据库环境配置,javascript,node.js,database-connection,sails.js,sails-mongo,Javascript,Node.js,Database Connection,Sails.js,Sails Mongo,我的问题与以下引述有关: 注意:如果模型使用了适配器的任何连接,那么该适配器的所有连接都将加载到sails.lift上,无论模型是否实际使用它们。在上面的示例中,如果将模型配置为使用localMysql连接,则localMysql和remoteMysql都将在运行时尝试连接。因此,最好按环境将连接配置拆分,并将其保存到相应的特定于环境的配置文件中,或者注释掉不希望激活的任何连接 如何配置生产服务器的连接 我的connections.js文件如下所示: module.exports.connect
module.exports.connections = {
mongoDev: {
adapter: 'sails-mongo',
host: 'localhost',
port: 27017,
user: 'username',
password: 'password',
database: 'database'
},
mongoLive: {
adapter: 'sails-mongo',
host: 'host.mongolab.com',
port: 31681,
user: 'user',
password: 'password',
database: 'database'
}
};
在我的环境配置文件中,我有:
development.js
module.exports = {
models: {
connection: 'mongoDev'
}
};
module.exports = {
models: {
connection: 'mongoLive'
},
port: 3000,
};
production.js
module.exports = {
models: {
connection: 'mongoDev'
}
};
module.exports = {
models: {
connection: 'mongoLive'
},
port: 3000,
};
这在我的本地机器上工作,因为生产数据库服务器位于外部服务器上。
在生产环境中,我遇到以下错误:
[Error: failed to connect to [localhost:27017]]
如果我从connections对象中删除mongoDev对象,它就会工作
我也尝试过使用Adapters.js,但这只会导致一些弃用错误
$ sails -v
info: v0.9.9
当我运行帆式升降机时,我得到了一些不同的东西:
info: Sails
info: v0.10.5
您希望将实际的连接定义保存在development.js或production.js中,并将其从connections.js中删除。这有点不直观
development.js
module.exports = {
connections : {
mongoDev: {
adapter: 'sails-mongo',
host: 'localhost',
port: 27017,
user: 'username',
password: 'password',
database: 'database'
}
},
models: {
connection: 'mongoDev'
}
};
production.js
module.exports = {
connections : {
mongoLive: {
adapter: 'sails-mongo',
host: 'host.mongolab.com',
port: 31681,
user: 'user',
password: 'password',
database: 'database'
}
},
models: {
connection: 'mongoLive'
},
port: 3000,
};
这似乎对我不起作用。您知道为什么必须在环境设置中执行此操作吗?有什么东西迫使它回到本地吗?这个答案与为什么这是一个问题有关