Я пытаюсь создать отчет, используя пакет node-jasper в файле node.js.Когда я пишу код без реализации класса, тогда код работает нормально. Следующий код - работоспособный.
jasper = require('node-jasper')({
path: '../lib/jasperreports-5.6.0',
reports: {
hw: {
jasper: '../jasperFiles/NodeIreportTest.jasper'
}
},
drivers: {
mysql: {
path: '../lib/com.mysql.jdbc_5.1.5.jar',
class: 'com.mysql.jdbc.Driver', //odbc driver//sun.jdbc.odbc.JdbcOdbcDriver //mysqlDriver// com.mysql.jdbc.Driver
type: 'mysql'
}
},
conns: {
dbserver1: {
host: '192.168.1.164',
port: 3306,
dbname: 'dbname',
user: 'user',
pass: '1234',
driver: 'mysql'
}
},
defaultConn: 'dbserver1'
});
Ниже приведен полный объект, найденный при отладке кода.который имеет свойство (hm)это реализация класса того же кода
class ReportModel {
constructor(strJasperPath, objDataObject, intClientIP) {
this.strJasperPath = strJasperPath;
this.objDataObject = objDataObject;
this.intClientIP = intClientIP;
}
makeReport() {
return new Promise ((resolve, reject) => {
jasper = require('node-jasper')({
path: '../lib/jasperreports-5.6.0',
reports: {
hw: {
//jasper: '../jasperFiles/NodeIreportTest.jasper'
jasper: '../jasperFiles/' + this.strJasperPath + '.jasper' //path to report
}
},
drivers: {
mysql: {
path: '../lib/com.mysql.jdbc_5.1.5.jar',
class: 'com.mysql.jdbc.Driver', //odbc driver//sun.jdbc.odbc.JdbcOdbcDriver //mysqlDriver// com.mysql.jdbc.Driver
type: 'mysql'
}
},
conns: {
dbserver1: {
host: '192.168.1.164',
port: 3306,
dbname: 'dbname',
user: 'user',
pass: '1234',
driver: 'mysql'
}
},
defaultConn: 'dbserver1'
});
var report = {
report: 'hw',
data: this.objDataObject
}
var pdf = jasper.pdf(report);
var strReportName = this.strJasperPath + intClientIP + '.pdf'
var filepath = "./reports/" + strReportName
var filename = {
"filepath": serverConfig.reporthost + path.basename(filepath)
};
//check if file is present or not
fs.access(filepath, fs.constants.F_OK | fs.constants.W_OK, (err) => {
if (err) {
//file is not present
fs.writeFile("./reports/" + strReportName, new Buffer(pdf, 'binary'), (err) => {
if (err) {
reject(err);
}
resolve(filename);
});
} else {
//file is present then delete it and then create it
fs.unlink(filepath, (err) => {
if (err) {
reject(err);
} else {
fs.writeFile("./reports/" + strReportName, new Buffer(pdf, 'binary'), (err) => {
if (err) {
console.log('WriteFile', err)
}
resolve(filename);
});
}
});
}
});
});
}
}
Ниже приведен объект, не имеющий свойства hm с реализацией класса.