Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将zip文件从请求主体写入节点服务器上的文件?_Javascript_Node.js_Request_Zip_Writetofile - Fatal编程技术网

Javascript 如何将zip文件从请求主体写入节点服务器上的文件?

Javascript 如何将zip文件从请求主体写入节点服务器上的文件?,javascript,node.js,request,zip,writetofile,Javascript,Node.js,Request,Zip,Writetofile,我正在尝试编写一个节点服务器,它可以接收PDF和JSON的zip文件。为了在服务器上使用它,我需要将它写入服务器上的一个文件,在那里我可以调用内部数据的其他函数 但是,使用我当前的方法,我可以成功地写入服务器中的文件,但是当尝试在windows中打开它时,我收到一个错误“压缩(压缩)文件夹无效” 我已经尝试直接将请求管道化到fs.createWriteStream,结果与下面的代码相同 app.route('/myRoute').post(rawParser, function (req

我正在尝试编写一个节点服务器,它可以接收PDF和JSON的zip文件。为了在服务器上使用它,我需要将它写入服务器上的一个文件,在那里我可以调用内部数据的其他函数

但是,使用我当前的方法,我可以成功地写入服务器中的文件,但是当尝试在windows中打开它时,我收到一个错误“压缩(压缩)文件夹无效”

我已经尝试直接将请求管道化到fs.createWriteStream,结果与下面的代码相同

    app.route('/myRoute').post(rawParser, function (req, res, next) {

    let serverFileName = `${req.connection.remoteAddress.substring(7)}_${Date.now()}.zip`
    let writeStream = fs.createWriteStream(`${__dirname}/${serverFileName}`, 'binary');

    // console.log(req.rawBody);
    writeStream.write(req.rawBody);
    writeStream.end();
    writeStream.on('error', err => {
        logger.logger(err);

        res.status = 500;
        res.send("Server did not accept File");
    });
    writeStream.on('finish', () => {
        logger.logger(`Writing to file: ${serverFileName}`);
        res.status = 201;
        res.send("Successfully Wrote file to server");
    });
});
这是我的简历

const rawParser = function (req, res, next) {
    req.rawBody = [];
    req.on('data', function (chunk) {
        req.rawBody.push(chunk);
        console.log(chunk)
    });
    req.on('end', function () {
        req.rawBody = Buffer.concat(req.rawBody);
        next();
    });
}
我对节点和javascript编码相当陌生。欢迎提供任何提示,包括您的解决方案