Sails.js Sails v0.10.x不';在生产模式下,不尊重production.js中的连接配置
在Sails v.0.10.x中为生产使用设置db连接的正确方法是什么?当我在生产模式(环境)下启动应用程序时,我希望Sails使用我在production.js中提到的连接,但事实并非如此。它似乎总是使用默认连接——“localDiskDb” 然而,当我在开发模式(环境)下启动sails时,它确实使用config/development.js中指定的连接,正如我所期望的那样 已更新 注意:我写production.js的位置时弄错了。它位于/config/env/production.js中,正如sgress454所说的那样。事实上,这个文件是由生成器创建的,放在正确的位置,我没有更改它 config/env/production.js如下所示:Sails.js Sails v0.10.x不';在生产模式下,不尊重production.js中的连接配置,sails.js,sails-mongo,Sails.js,Sails Mongo,在Sails v.0.10.x中为生产使用设置db连接的正确方法是什么?当我在生产模式(环境)下启动应用程序时,我希望Sails使用我在production.js中提到的连接,但事实并非如此。它似乎总是使用默认连接——“localDiskDb” 然而,当我在开发模式(环境)下启动sails时,它确实使用config/development.js中指定的连接,正如我所期望的那样 已更新 注意:我写production.js的位置时弄错了。它位于/config/env/production.js中,
// config/env/production.js
module.exports = {
connection: 'mongo_production'
};
// config/models.js
module.exports.models = {
// connection: 'localDiskDb'
};
// config/connections.js
module.exports.connections = {
mongo_development: {
adapter: 'sails-mongo',
host: 'localhost',
port: 27017,
user: '',
password: '',
database: 'my_local_db'
},
mongo_production: {
adapter: 'sails-mongo',
url: 'mongodb://me:mypw@foobar.mongohq.com:10052/my_production_db'
}
};
module.exports = {
models: {
connection: 'mongo_production'
}
};
config/models.js如下所示:
// config/env/production.js
module.exports = {
connection: 'mongo_production'
};
// config/models.js
module.exports.models = {
// connection: 'localDiskDb'
};
// config/connections.js
module.exports.connections = {
mongo_development: {
adapter: 'sails-mongo',
host: 'localhost',
port: 27017,
user: '',
password: '',
database: 'my_local_db'
},
mongo_production: {
adapter: 'sails-mongo',
url: 'mongodb://me:mypw@foobar.mongohq.com:10052/my_production_db'
}
};
module.exports = {
models: {
connection: 'mongo_production'
}
};
config/connections.js如下所示:
// config/env/production.js
module.exports = {
connection: 'mongo_production'
};
// config/models.js
module.exports.models = {
// connection: 'localDiskDb'
};
// config/connections.js
module.exports.connections = {
mongo_development: {
adapter: 'sails-mongo',
host: 'localhost',
port: 27017,
user: '',
password: '',
database: 'my_local_db'
},
mongo_production: {
adapter: 'sails-mongo',
url: 'mongodb://me:mypw@foobar.mongohq.com:10052/my_production_db'
}
};
module.exports = {
models: {
connection: 'mongo_production'
}
};
这里有几个问题:
connection
config键来更改模型的默认连接;它需要是型号。连接
// config/env/production.js
module.exports = {
connection: 'mongo_production'
};
// config/models.js
module.exports.models = {
// connection: 'localDiskDb'
};
// config/connections.js
module.exports.connections = {
mongo_development: {
adapter: 'sails-mongo',
host: 'localhost',
port: 27017,
user: '',
password: '',
database: 'my_local_db'
},
mongo_production: {
adapter: 'sails-mongo',
url: 'mongodb://me:mypw@foobar.mongohq.com:10052/my_production_db'
}
};
module.exports = {
models: {
connection: 'mongo_production'
}
};
然后,在生产模式下提升时,默认情况下,模型将使用
mongo_生产连接。在sails版本0.12中,config/env文件夹下将有两个env文件。
因此,我们可以在这两个文件中编写特定于模式的(生产/开发)配置。
为了在特定模式下运行我们的sails应用程序,我们必须遵循以下步骤:
步骤1)
在config/local.js文件中
module.exports = {
// port: process.env.PORT || 1337, // comment this line if you want to set the different ports for different modes
environment: process.env.NODE_ENV || 'development'
};
步骤2)在env/developement.js文件中
编写特定于开发的配置
module.exports = {
port: 8080, // will change from default port 1337 to 8080
models: {
connection: 'developement_db',
migrate: 'alter'
}
};
module.exports = {
port: 9090, // will change from default port 1337 to 9090
models: {
connection: 'production_db',
migrate: 'safe'
}
};
步骤3)在env/production.js文件中
编写特定于生产的配置
module.exports = {
port: 8080, // will change from default port 1337 to 8080
models: {
connection: 'developement_db',
migrate: 'alter'
}
};
module.exports = {
port: 9090, // will change from default port 1337 to 9090
models: {
connection: 'production_db',
migrate: 'safe'
}
};
步骤4)要在特定模式下运行sails应用程序
- 以生产方式运行
$NODE\u ENV=生产npm开始
帆船将在9090港航行
- 以开发模式运行
$NODE\u ENV=developement npm start
帆船将在8080港航行
首先,感谢您如此快速地回答我的问题。接下来,我搞错了production.js的位置。它一直都在正确的地方,我更新了问题以反映这一点。最后,你的观点2是正确的!一旦我设置了models.connection
键,一切正常。再次感谢。