2013-11-11 7 views
2

JA 클라이언트에서 NodeJS 서버로 BLOB 데이터를 보내려고합니다.클라이언트에서 NodeJS 서버로 블로 브 데이터 함 XHR 보내기

이제 I이 클라이언트 측 코드를 가지고 [...] recorder.exportWAV (함수 (BLOB) { audioObj = 블롭; 을});

var formData = new FormData(); 
formData.append("operation", "addMessage"); 
formData.append("msg", audioObj); 

var xhr = new XMLHttpRequest(); 
xhr.open("POST", "http://localhost:8080/sendRecord", true); 
xhr.onreadystatechange = function(){ 
    if(xhr.readyState==4 && xhr.status==200){ 
     // get response from server 
    } 
} 
xhr.send(formData); 

통합 마이크에서 오디오를 녹음하기 위해 일부 JS 라이브러리를 사용하고 마지막에는 blob 객체 인 audioObj가 있습니다.

그리고 데이터 수신을 위해 조정하려는이 si node.js 서버.

var http = require('http'), 
    url = require('url'); 

var app = http.createServer(function(request, response){ 

    var path = url.parse(request.url).pathname; 
    // check the url path 
    if (path == "/sendRecord") { 

     // check the request method 
     if(request.method != "POST"){ 
      // return error 
     } 

     // _______________________________ 
     //| here I want catching XHR data | 
     // ––––––––––––––––––––––––––––––– 
    } 
}).listen(8080); 

console.log("Server running on: http://localhost:8080/"); 

나는 클라이언트 XHR 요청에 응답 일부 서버 측 XHR API를해야한다고 생각하지만은과 어디를 찾을 모른다. 누구도 도와 줄 수 있습니까? 부엉 링크 또는 문서 ...)

고마워!

+0

[formidable] (https://github.com/felixge/node-formidable)을 확인하십시오. – robertklep

+0

좋은 ... 좋은 소리! 내일 나는 그것을 밖으로 뺨 것이다! – RikyTres

답변

2
사람이 미래에 유용 할 경우 나 ... 나 자신에게 대답

, 강력 함 (https://github.com/felixge/node-formidable 사용)

는) 내가 이런 짓을했습니다

var http = require('http'), 
    url = require('url'), 
    formidable = require('formidable') 
    util = require('util'); 

var server = http.createServer().listen(8080); 

server.on('request', function(request, response) { 
    var form = new formidable.IncomingForm(), 
    fields = [], 
    files = []; 

    form.on('error', function(err){ 
    response.writeHead(200, {'content-type': 'text/plain'}); 
    response.end('error:\n\n' + util.inspect(err)); 
    }); 

    form.on('field', function(field, value){ 
    console.log(field, value); 
    fields.push([field, value]); 
    }); 

    form.on('file', function(field, file){ 
    console.log(field, file); 
    files.push([field, file]); 
    }); 

    form.on('end', function(){ 
    console.log('-> upload done'); 
    response.writeHead(200, {'content-type': 'text/plain'}); 
    response.write('Received fields:\n\n ' + util.inspect(fields)); 
    response.write('\n\n'); 
    response.end('received files:\n\n ' + util.inspect(files)); 
    }); 

    form.encoding = 'utf-8'; 
    form.uploadDir = './tmp'; 
    form.keepExtensions = true; 
    form.parse(request); 
}); 

덕분에이 제안에 대한 robertklep하기!

관련 문제