0

我正在使用这个 Node.js 模块nano

为什么我无法更新我的文档?我会想疯狂:真,然后又是假。
这是我的代码:

var nano = require('nano')('http://localhost:5984');

// clean up the database we created previously
nano.db.destroy('alice', function() {
  // create a new database
  nano.db.create('alice', function() {
    // specify the database we are going to use
    var alice = nano.use('alice');
    // and insert a document in it
    alice.insert({ crazy: true }, 'rabbit', function(err, body, header) {
      if (err) {
        console.log('[alice.insert] ', err.message);
        return;
      }
      console.log('you have inserted the rabbit.')
      console.log(body);
    });
  });
});
4

1 回答 1

0

Nano 默认不提供更新方法。这就是为什么我们需要定义一个自定义方法来为我们做这件事。在文件顶部附近声明以下内容,紧跟在app.js数据库连接代码之后。

test_db.update = function(obj, key, callback){
 var db = this;
 db.get(key, function (error, existing){ 
    if(!error) obj._rev = existing._rev;
    db.insert(obj, key, callback);
 });
}

然后,您可以在代码中使用该update方法:

    // and update a document in it
    alice.update({ crazy: false }, 'rabbit', function(err, body, header) {
      if (err) {
        console.log('[alice.insert] ', err.message);
        return;
      }
      console.log('you have updated the rabbit.')
      console.log(body);
    });
  });
});
于 2017-03-08T09:37:00.430 回答