nodejs多文件上传,路径包含双斜杠

nodejs multer file upload, path contains double slashes

我正在通过 nodejs 和 multer 模块上传图片,这是我使用的代码:

app.post('/upload', upload.single('file'), function(req, res, next) {
    var tmp_path = req.file.path,
        target_path = __dirname + '/public/uploads/' + req.file.originalname,

        src = fs.createReadStream(tmp_path),
        dest = fs.createWriteStream(target_path);

    src.pipe(dest);
    fs.unlink(tmp_path); //deleting the tmp_path

    src.on('end', function() {
        res.json({
            success: true,
            file: '/uploads/' + req.file.originalname
        });
    });

    src.on('error', function(err) {
        console.log('err', err);
        res.json({
            success: false
        });
    });
});

问题是有时(随机发生)会触发错误回调,内容如下:

所以看起来路径中添加了额外的斜杠,导致脚本找不到临时位置和 returns 错误,也许有人遇到过这个问题并且可以提供帮助 ;)

尝试运行发送成功消息后取消链接,管道是异步的,因此可能在删除后执行。

 src.on('end', function() {
        res.json({
            success: true,
            file: '/uploads/' + req.file.originalname
        });
        fs.unlink(tmp_path)
    });

您可以使用以下代码来消除此错误...

尝试:- path.replace("\\","/");

这一定能解决你的问题。