Méthode pour générer des fichiers PDF : utilisez Node.js pour vous connecter à la base de données MySQL
<p>J'essaie de générer un fichier PDF à l'aide de Node js, Pdfkit et pdfkit-table en utilisant des données stockées dans une base de données Mysql. J'ai besoin d'imprimer des enregistrements d'une base de données vers un tableau dans un document PDF. </p>
<p>Le code suivant génère un fichier PDF vide. S'il vous plaît, aidez-moi à comprendre pourquoi il ne génère pas de fichier PDF avec des données. </p>
<p>Il s'agit du fichier index.js.</p>
<pre class="brush:php;toolbar:false;">var express = require('express');
var routeur = express.Router();
var PDFDocument = require('pdfkit');
var orm = require('orm');
var PDFDoc = require("pdfkit-table");
router.use(orm.express("mysql://root:@localhost:/kirula_fashion", {
définir : fonction (base de données, modèles, suivant) {
models.news = db.define("ledger", {
identifiant : chaîne,
date : Chaîne,
description : Chaîne,
débit : Chaîne,
crédit : Chaîne,
});
suivant();
}
}));
router.get('/', function(req, res, next) {
var résultat = req.models.news.find({
}, fonction(erreur, actualité){
if(error) renvoie une erreur ;
res.render('index', { news:news, title: '使用NodeJS生成PDF'
});
});
});
router.get('/pdf', function(req, res, next) {
var id = req.query.id;
const doc = nouveau PDFDocument();
const docTable = new PDFDoc();
var result = req.models.news.find({id: id}, function(erreur, newspost){
if(error) renvoie une erreur ;
autre{
si(newspost.length>0){
pour(var i=0; i<newspost.length;i++){
var date = newspost[0]['date'];
var description = newspost[0]['description'];
var débit = newspost[0]['débit'];
var crédit = newspost[0]['crédit'];
vartable = {
titre : "账簿记录",
sous-titre : "2020年5月",
en-têtes : [
{ "étiquette" : "日期", "propriété" : "date", "largeur" : 100 },
{ "étiquette" : "描述", "propriété" : "description", "largeur" : 100 },
{ "libellé": "借方", "propriété": "débit", "largeur": 100 },
{ "libellé":"贷方", "propriété":"crédit", "largeur":100 }
],
des données:
[
{ "date" :date, "description" :description, "débit" :débit, "crédit" :crédit},
{
"Renderer": "function(value, i, irow){ valeur de retour + `(${(1+irow)})`; }"
}
],
} ;
docTable.table(table, {
largeur : 300,
});
}
}
}
var title = "2020年5月账簿";
var nom de fichier = encodeURIComponent (titre) + '.pdf';
res.setHeader('Content-disposition', 'attachment; filename="' + filename + '"');
res.setHeader('Type de contenu', 'application/pdf');
doc.pipe(res);
doc.end();
});
});
module.exports = routeur;</pre></p>