gpt4 book ai didi

node.js - 快速文件上传。处理 Formidable Parse 中的错误(服务器端)

转载 作者:搜寻专家 更新时间:2023-10-31 23:58:35 24 4
gpt4 key购买 nike

我有一个关于 Npm 中强大模块的问题。我用它来解析来 self 的 Fileupload 前端的传入文件,然后使用 fs.rename 将其保存在本地。这已经有效,到目前为止一切顺利。如果重命名失败,我现在想引入一种错误处理形式,但出于某种原因,它告诉我我有一个未处理的错误(即使它已被处理)。

app.post('/upload/:id', function(req, res) {

var type = req.query.type;
console.log(type);
var clubId = req.params.id;
var fileName = clubId.toString();
console.log(clubId);


var form = new formidable.IncomingForm();
form.uploadDir = baseUrl + "indesign_test/sticker_pdfs/" + clubId;
form.on('file', function(field, file) {
var originalName = file.name;
if (originalName.indexOf('.pdf') >= 0 && type == '.pdf') {
fs.rename(file.path, path.join(form.uploadDir, fileName + '.pdf', function(err) {
if (err) console.log('Test Error: ' + err.code); // <- Error Handling here
});
} else {
console.log('Error Wrong Format, expected upload in Format of' + type);
}

});
form.on('error', function(err) {
console.log('An error has occured: \n' + err);
});
form.on('end', function() {
res.end('success');
});

form.parse(req);
})

相反,我得到了这个未处理的错误:

 events.js:182
throw er; // Unhandled 'error' event
^

Error: ENOENT: no such file or directory, open '/Users/stickerstars-it-mbp/Desktop/indesign_test/sticker_pdfs/339/upload_be8ff3bd80f5cb2bf1658493157e459f'
stickertmbpsMBP:node-fileupload stickerstars-it-mbp$

最佳答案

出于某种原因,您无法将上传路径保存在 form.uploadDir 对象上。请改用常规变量。这是更新后的代码示例:

var form = new formidable.IncomingForm();
//upload path on variable instead the form object
var uploadPath = baseUrl + "indesign_test/sticker_pdfs/" + clubId;

form.on('file', function(field, file) {
var originalName = file.name;
if (originalName.indexOf('.pdf') >= 0 && type == '.pdf') {
fs.rename(file.path, path.join(uploadPath, fileName + '.pdf', function(err) {
if (err) console.log('Test Error: ' + err.code);
});
} else {
console.log('Error Wrong Format, expected upload in Format of' + type);
}

});

在这个例子中,错误处理没有问题

关于node.js - 快速文件上传。处理 Formidable Parse 中的错误(服务器端),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46059254/

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