Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.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 如何使用POST保存从NodeJS发送的文件_Javascript_Node.js_Fs_Requestjs - Fatal编程技术网

Javascript 如何使用POST保存从NodeJS发送的文件

Javascript 如何使用POST保存从NodeJS发送的文件,javascript,node.js,fs,requestjs,Javascript,Node.js,Fs,Requestjs,我创建了以下函数来加载流文件。此流被发送到POST指定的地址。在目的地,我有另一个使用ExpressJS“捕获”这篇文章的NodeJS服务,但我不知道如何将文件保存到目的地 我的电脑上的NodeJS: function sendFileToRaspberry(filePath) { var options = { method: 'POST', url: 'http://x.x.x.x:8080/api/print', qs: {file:

我创建了以下函数来加载流文件。此流被发送到POST指定的地址。在目的地,我有另一个使用ExpressJS“捕获”这篇文章的NodeJS服务,但我不知道如何将文件保存到目的地

我的电脑上的NodeJS:

function sendFileToRaspberry(filePath) {
    var options = {
        method: 'POST',
        url: 'http://x.x.x.x:8080/api/print',
        qs: {file: fs.createReadStream(filePath)},
        headers:
            {
                'cache-control': 'no-cache'
            }
    };

    request(options, function (error, response, body) {
        if (error) throw new Error(error);

        console.log(body);
    });
}
在我的覆盆子上点头:

app.post('/api/print', function (req, res) {

    ORIGINAL_IP = req.ip.replace("::ffff:", '');
    console.log("Received a print request from: " + ORIGINAL_IP);

    // Test history data for /api/printer API
    var file = req.query.file;
    console.log("Test data: " + file);
    util.inspect(file);

});
但在控制台日志中,我得到:

收到来自的打印请求:y.y.y.y

测试数据:[对象]


如何在Rasp上保存此文件?

您可以使用expressjs中间件帮助程序,如
ExpressFileUpload

我认为,您已经使用了
多部分表单上传
通过http POST上传文件

客户端(您的PC)

function sendFileToRaspberry(filePath) {
    var options = {
        method: 'POST',
        url: 'http://x.x.x.x:8080/api/print',
        formData: {
            file: fs.createReadStream(filePath)
        },
        headers: {
            'cache-control': 'no-cache'
        }
    };

    request(options, function (error, response, body) {
        if (error) throw new Error(error);

        console.log(body);
    });
}