Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript SailsJS-动态更改数据库名称_Javascript_Node.js_Mongodb_Sails.js_Database - Fatal编程技术网

Javascript SailsJS-动态更改数据库名称

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

在myconnections.js中,我指定了一个mongodb连接:

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的数据库。我弄错了吗?可能是