gpt4 book ai didi

javascript - 使用 node.js nano 模块将附件批量上传到 couchDB

转载 作者:行者123 更新时间:2023-11-30 05:52:22 25 4
gpt4 key购买 nike

我正在尝试使用 node.js 和 nano 将附件批量上传到 CouchDB。首先,walk 模块用于查找上传文件夹中的所有文件并从中创建数组。接下来,阵列中的每个文件都应该通过管道和纳米模块插入到 CouchDB 中。但是最后的结果是只上传了一个附件。

var nano = require('nano')('http://localhost:5984')
var alice = nano.use('alice');
var fs = require('fs');
var walk = require('walk');
var files = [];

// Walker options
var walker = walk.walk('./uploads', {
followLinks: false
});

// find all files and add to array
walker.on('file', function (root, stat, next) {
files.push(root + '/' + stat.name);
next();
});

walker.on('end', function () {
// files array ["./uploads/2.jpg","./uploads/3.jpg","./uploads/1.jpg"]
files.forEach(function (file) {
//extract file name
fname = file.split("/")[2]

alice.get('rabbit', {revs_info: true}, function (err, body) {

fs.createReadStream(file).pipe(

alice.attachment.insert('rabbit', fname, null, 'image/jpeg', {
rev: body._rev
}, function (err, body) {
if (!err) console.log(body);
})


)


});



});


});

最佳答案

这是因为您将异步 api 与同步的假设混合在一起。

在第一个请求之后你会遇到冲突,因为 rabbit 文档已经改变。

您可以使用 NANO_ENV=testing node yourapp.js 确认这一点吗?

如果这是问题,我建议使用异步

关于javascript - 使用 node.js nano 模块将附件批量上传到 couchDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13957334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com