SailsJS - 动态更改数据库名称

问题描述 投票:2回答:1

在我的connections.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的名称

我需要在控制器中创建一个带有动态名称的数据库,并在创建后插入新行。这里有什么帮助?

javascript node.js mongodb sails.js database
1个回答
1
投票

这里的问题是数据库名称是静态的,这意味着它永远不会被写入。因为您已将'your_mongo_db_name_here'分配给数据库变量。无论您在此调用之前分配给数据库名称,都不会将其分配给数据库名称。

解决方案将有一个构造函数参数或创建为函数

© www.soinside.com 2019 - 2024. All rights reserved.