how to insert stream into table using nodejs?

From: Leonardo <sombriks(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: how to insert stream into table using nodejs?
Date: 2015-10-26 22:28:16
Message-ID: CAPDRjvEnY0uXm2Zw1XeQEVBsh5ZXdc=nq2S3UNcMGt0+GHnaJg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hello all,

i'm looking for a way to insert a file into a table using available binding
for nodejs.

just for comparison, if i where using java on server the upload code would
be like this:

protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
cors(response);
LOG.info("POST started: " + request.getContentType());
Collection<Part> parts = request.getParts();
for (Part part : parts) {
long len = part.getSize();
String name = part.getName();
LOG.info("attepmt to upload " + name + " from "
+ request.getRemoteAddr());
if ("file".equals(name)) {
String mime = part.getContentType();
try (InputStream in = part.getInputStream()) {
String q = "insert into media (mediamime,mediadata) values (?,?)";
try (Connection con = ds.getConnection()) {
try (PreparedStatement ps = //
con.prepareStatement(q, Statement.RETURN_GENERATED_KEYS)) {
ps.setString(1, mime);
ps.setBinaryStream(2, in, len);
ps.executeUpdate();
try (ResultSet rs = ps.getGeneratedKeys()) {
if (rs.next()){
String m = ""+rs.getInt(1);
LOG.info("new media: "+m);
response.getWriter().write(m);
}
}
}
} catch (Exception e) {
LOG.severe(e.getMessage());
e.printStackTrace();
response.setStatus(500);
response.getWriter().write(e.toString());
}
}
}
}
}

Attention for ps.setBinaryStream(2, in, len); part.

Im' looking for a equivalent to this using pg, knex, anything capable of
this in the nodejs ecossytem.

Thanks in advance.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Lane 2015-10-26 22:30:37 Re: PAM LDAP CREATE USER
Previous Message Gavin Flower 2015-10-26 22:23:43 Re: Recursive Arrays 101