These are chat archives for NodejsRUS/chat

18th
Apr 2016
Ivan
@IvanMMM
Apr 18 2016 06:07
Поделюсь решением) Этот кусок кода проксирует отправку файла на сервер ВК (пришлось сделать так из-за КОРСа), принимает ответ с сервера и делает остальные запросы чтобы получить, скажем, photoUSERID_PHOTOID, которое пихают в аттачменты.
        let body = '';
        req.pipe(
                request.post(requestOptions)
                .on('data', function(data) {
                    body += data;
                })
                .on('end', () => {
                    try {
                        var data = JSON.parse(body);
                    } catch (err) {
                        return res.json({
                            success:false,
                            message:'Invalid JSON'
                        });
                    }

                    //Сохраняем данные сохранённого документа
                    switch(type){
                        case 'photo':
                            files.saveMessagesPhoto(data,onDocumentData);
                            break;
                        case 'doc':
                            files.saveMessagesDocs(data,fileName,onDocumentData);
                            break;
                        case 'video':
                            res.json({success:false,message:'Not supported yet'});
                            break;
                        default:
                            res.json({success:false,message:'Invalid type'});
                            break;
                    }
                })
                .on('error', (err) => console.error(err))
            );
Ivan
@IvanMMM
Apr 18 2016 06:18
Можно было сделать то же самое с помощью writable stream, но так удобнее плюс не надо разжимать потоковые данные ответа сервера gzipом