Boa noite, gostaria de saber como faço para entregar um PDF gerado pelo node para quem fez a requisição em forma de download
const Consulta = require("../infra/consulta");
const xml = require("../infra/consultaXML");
const webdanfe = require("webdanfe");
const fs = require("fs");
module.exports = (app) => {
app.get("/", (req, res) => res.marko(require("../views/index.marko")));
app.post("/consulta", (req, res) => {
if (req.body == "") {
res.send("Este patrimonio não existe");
return;
}
let patrimonio = req.body;
Consulta.consulta(patrimonio.patrimonio).then(resposta => {
if (resposta == "Este Patrimonio não existe") {
res.send(`<td colspan="8">Este Patrimonio não existe</td>`);
return;
}
let consulta = [];
resposta.forEach(prop => {
let objeto = {
loja: prop[0],
patrimonio: prop[1],
descricao: prop[2],
fornecedor: prop[3],
numeroNf: prop[4],
serieNf: prop[5],
data: prop[6],
cgo: prop[7],
chave: prop[8]
}
consulta.push(objeto)
});
res.marko(require("../views/rotas/tabelas.marko"), {consulta: consulta});
});
});
app.post("/consultaXML", (req, res) => {
console.log(req);
xml.consultaXML().then(result => {
webdanfe.gerarDanfe(result, function(err, pdf) {
if(err) {
throw err;
}
fs.writeFileSync(res, pdf, {
encoding: 'binary'
});
});
})
})
}
Aqui estou usando o express, e esta funcionando porem gostaria de mandar o PDF para quem requisitou no caso a requisição vem daqui
$(document).on("click", ".buscar-nf", function() {
$.post("/consultaXML", function(resultado) {
window.print(resultado);
})
})
e aqui gostaria de abrir o PDF direto para a impressão ou fazer o download dele no browser alguém consegue me ajudar?