Javascript 在支架合并中使用变量(Node.js和CouchDB)
我正在尝试编写一个函数,可以同时循环和更改多个文档中的一个字段。唯一的问题是,当我传递一个参数值时,支架合并似乎实际上传递了一个带有参数名而不是值的字段 例如:Javascript 在支架合并中使用变量(Node.js和CouchDB),javascript,node.js,couchdb,cradle,Javascript,Node.js,Couchdb,Cradle,我正在尝试编写一个函数,可以同时循环和更改多个文档中的一个字段。唯一的问题是,当我传递一个参数值时,支架合并似乎实际上传递了一个带有参数名而不是值的字段 例如: function saveToAll(field, data) { db.get('document_list', function (err, doc) { for (key in doc.doc_list_pure) { //Create a Closure (function(key
function saveToAll(field, data) {
db.get('document_list', function (err, doc) {
for (key in doc.doc_list_pure) {
//Create a Closure
(function(key1) {
console.log(key1)
//Go into the DB
console.log(field);
console.log(data);
db.merge(key1, {
field : data
}, function (err, res) {
console.log('Saved');
});
}
)(key)
}
});
}
在这里,如果我写一个这样的函数:
saveToAll("new_field", value);
它将正确记录日志,但用正确的数据保存一个名为“field”的字段。有人知道如何处理这个问题吗?这是一只摇篮虫还是只有我一个人?试试这个:
function saveToAll(field, data) {
db.get('document_list', function (err, doc) {
for (key in doc.doc_list_pure) {
//Create a Closure
(function(key1) {
console.log(key1)
//Go into the DB
console.log(field);
console.log(data);
var dataObj = {};
dataObj[field]=data;
db.merge(key1, dataObj, function (err, res) {
console.log('Saved');
});
}
)(key)
}
});
}
试试这个:
function saveToAll(field, data) {
db.get('document_list', function (err, doc) {
for (key in doc.doc_list_pure) {
//Create a Closure
(function(key1) {
console.log(key1)
//Go into the DB
console.log(field);
console.log(data);
var dataObj = {};
dataObj[field]=data;
db.merge(key1, dataObj, function (err, res) {
console.log('Saved');
});
}
)(key)
}
});
}