Javascript SailsJS-动态更改数据库名称
在myconnections.js中,我指定了一个mongodb连接:Javascript SailsJS-动态更改数据库名称,javascript,node.js,mongodb,sails.js,database,Javascript,Node.js,Mongodb,Sails.js,Database,在myconnections.js中,我指定了一个mongodb连接: someMongodbServer: { adapter: 'sails-mongo', host: 'localhost', port: 27017, user: '', password: '', database: 'your_mongo_db_name_here' } 在我的控制器中,我覆盖了数据库名称,如下所示: module.exports = { syn
someMongodbServer: {
adapter: 'sails-mongo',
host: 'localhost',
port: 27017,
user: '',
password: '',
database: 'your_mongo_db_name_here'
}
在我的控制器中,我覆盖了数据库名称,如下所示:
module.exports = {
sync: function (req, res) {
var params = req.params.all();
sails.config.connections.someMongodbServer.database = "newDynamicName";
console.log(sails.config.connections.someMongodbServer);
User.create(params, function(err, users) {
if (err) return next(err);
res.status(201);
res.json(users);
});
}
};
但它仍然使用connections.js中指定的名称(该数据库将在应用程序解除后立即创建)
如果我没有在connections.js中提供任何数据库名称,默认情况下,它将创建并使用一个名为sails
我需要在控制器中创建一个具有动态名称的数据库,并在创建新行后在其中插入新行。这里有什么帮助吗?这里的问题是数据库名是静态的,这意味着它永远不会被重写。因为您已将“your_mongo_db_name_here”分配给数据库变量。因为无论在调用之前为数据库名分配了什么,它都不会被分配给数据库名
解决方案需要有一个构造函数参数或create as function,我如何调用此构造函数并将db名称从控制器传递给连接?我认为覆盖全局配置对象将是解决方案。我是NodeJS新手,所以这就是为什么我在引导时很难使用这个sails生成数据库,这就是为什么你的代码不起作用可能在bootstrap.js@config文件夹中尝试同样的方法会对你有所帮助,但是当应用程序引导时,我没有数据库的名称,在该文件中我应该做什么?
sails.config.connections.someMongodbServer.database=“newDynamicName”
在cb()之前,通过bootstrap.js
复制此代码,它没有改变任何内容。它的工作原理和以前一样。它将使用我在connections.js中指定的数据库名称,如果我没有指定任何名称,它将创建一个名为sails的数据库。我弄错了吗?可能是