Methode zum Generieren von PDF-Dateien: Verwenden Sie Node.js, um eine Verbindung zur MySQL-Datenbank herzustellen
<p>Ich versuche, eine PDF-Datei mit Node js, Pdfkit und pdfkit-table zu generieren und dabei Daten zu verwenden, die in einer MySQL-Datenbank gespeichert sind. Ich muss Datensätze aus einer Datenbank in eine Tabelle in einem PDF-Dokument drucken. </p>
<p>Der folgende Code generiert eine leere PDF-Datei. Bitte helfen Sie mir herauszufinden, warum keine PDF-Datei mit Daten generiert wird. </p>
<p>Dies ist die Datei index.js.</p>
<pre class="brush:php;toolbar:false;">var express = require('express');
var router = express.Router();
var PDFDocument = require('pdfkit');
var orm = require('orm');
var PDFDoc = require("pdfkit-table");
router.use(orm.express("mysql://root:@localhost:/kirula_fashion", {
define: function (db, models, next) {
models.news = db.define("ledger", {
id: Zeichenfolge,
Datum: Zeichenfolge,
Beschreibung: Zeichenfolge,
Soll: String,
Kredit: String,
});
nächste();
}
}));
router.get('/', function(req, res, next) {
var result = req.models.news.find({
}, function(error, news){
if(error) throw error;
res.render('index', { news:news, title: '使用NodeJS生成PDF'
});
});
});
router.get('/pdf', function(req, res, next) {
var id = req.query.id;
const doc = new PDFDocument();
const docTable = new PDFDoc();
var result = req.models.news.find({id: id}, function(error, newspost){
if(error) throw error;
anders{
if(newspost.length>0){
for(var i=0; i<newspost.length;i++){
var date = newspost[0]['date'];
var description = newspost[0]['description'];
var debit = newspost[0]['debit'];
var credit = newspost[0]['credit'];
var-Tabelle = {
Titel: "账簿记录",
Untertitel: „5. Mai 2020“,
Überschriften: [
{ "label":"日期", "property":"date", "width":100 },
{ "label":"描述", "property":"description", "width":100 },
{ "label":"借方", "property":"debit", "width":100 },
{ "label":"贷方", "property":"credit", "width":100 }
],
Daten:
[
{ "Datum":Datum, "Beschreibung":Beschreibung, "Lastschrift":Lastschrift, "Gutschrift":Gutschrift},
{
"renderer": "function(value, i, irow){ return value + `(${(1+irow)})`; }"
}
],
};
docTable.table( Tabelle, {
Breite: 300,
});
}
}
}
var title = "5. Dezember 2020";
var filename = encodeURIComponent(title) + '.pdf';
res.setHeader('Content-disposition', 'attachment; filename="' + filename + '"');
res.setHeader('Content-type', 'application/pdf');
doc.pipe(res);
doc.end();
});
});
module.exports = router;</pre></p>