我是第一次使用cloudant-couchdb,而我只是被卡在这个问题上。
我试图通过我的node.js服务器将视图动态插入数据库中。

这是我的代码。

app.post("/listSections", function(req, res) {
  var moduleID = req.body.name;
  console.log(moduleID);
  db.insert(
        { "views":
            { moduleID:     //create view with name = moduleID
                {
                    "map": function (doc) {
                       //some function
                }
            }
        },
        '_design/section', function (error, response) {
                console.log("Success!");
   });
});


我想动态创建一个视图,该视图名称为变量moduleID的值。如何在insert函数中传递该变量?

最佳答案

不能在对象文字定义中插入变量名称。预先创建对象。

var obj = {};
obj[moduleID] = {map: function () {}};

db.insert({views: obj},


如果您使用的是ES6,并且可以使用计算所得的属性名称,则可以改为执行以下操作:

db.insert({views: {[moduleID]: {


参见:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer

10-06 01:20