Search code examples
javascriptnode.jspdfexpressbuffer

Display Pdf in browser using express js


I'm trying to serve a PDF via Express in a way it is displayed in browser:

app.post('/asset', function(request, response){
  var tempFile="/home/applmgr/Desktop/123456.pdf";
  fs.readFile(tempFile, function (err,data){
     response.contentType("application/pdf");
     response.send(data);
  });
});

However, the browser shows binary content. How to handle this correctly?


Solution

  • I tested your code and it works for me in chrome with one change: Change app.post to app.get

    EDIT: since you seem to think a POST-only server is a good idea, read this: http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/ Scroll down until the HTTP verbs and check out the difference between GET and POST. :)

    Some quick research suggests that other browsers might have other issues, IE for example might expect the URL to end in .pdf. Since I'm on my Mac I can't test that for you ;)