2016-03-23 1 views
1

Gegenwärtig verwenden wir Polymer für das Frontend. Im Polymer haben wir Element "vaadin-upload".Hochladen von Bildern mit Polymer- und Knoten-Js

Problem: Wir sind nicht in der Lage, Knoten js Code zu feuern/verfolgen. Wenn wir versuchen, ein Bild hochzuladen, wird der Fehler POST 404 nicht gefunden.

Bitte unten stehenden Code von Polymer und NodeJS überprüfen.

Polymer:

<vaadin-upload target="http://localhost:5000/upload" method="POST" timeout="300000" headers="{'X-Custom-Header': 'value'}"></vaadin-upload> 

Knoten Js:

var server = new Hapi.Server(); 
server.route({ 
    method: 'POST', 
    path: '/upload', 
    config: { 
      payload:{ 
       maxBytes:209715200, 
       output:'stream', 
       parse: false 
      }, 
      handler: function (request, reply) { 
      var data = request.payload; 
      if (data.file) { 
       var name = data.file.hapi.filename; 
       var path = __dirname + "/upload/" + name; 
       var file = fs.createWriteStream(path); 

       file.on('error', function (err) { 
        console.error(err) 
       }); 

       data.file.pipe(file); 

       data.file.on('end', function (err) { 
        var ret = { 
         filename: data.file.hapi.filename, 
         headers: data.file.hapi.headers 
        } 
        reply(JSON.stringify(ret)); 
       }) 
      } 

     } 
    } 
}); 

Antwort

0

Nach einem Blick auf die hapijs tutorial sieht es aus wie Sie den Port definieren müssen, nachdem Sie die Serverinstanz erstellen.

server.connection({ port: 5000 }); 
0

Hapi speichert die Datei in das Verzeichnis für Sie, damit Sie nicht damit umgehen müssen.

const server = new Hapi.Server(); 

server.connection({ 
    port: 5000 
}); 

server.start(function() { 
    console.log('server running at: ' + server.info.uri); 
}); 

const PATH_TO_UPLOADED_FILES = '...'; 

server.route({ 
    method: 'POST', 
    path: '/upload', 
    config: { 
     payload: { 
      output: 'file', 
      uploads: PATH_TO_UPLOADED_FILES, 
      parse: true, 
      maxBytes: 209715200 
     }, 
     handler: function (request, reply) { 
      // file path is at: request.payload.file.path 
      reply('thanks'); 
     } 
    } 
});