2017-02-13 3 views
0

ノードのサーバーファイルからdocxtemplaterコードをリファクタリングしようとしています。 req.body jsonオブジェクトはうまく動作し、console.loggedにさえもの中にはのdoc.setData()メソッドがあります。私はこのエラーを取得していますサーバーを実行しようとすると、しかし:サーバーからのdocfactatorのリファクタリングで、req jsonオブジェクトがdoc.setData()内でアクセスされなくなる

firstName: data.firstName, 
      ^  
TypeError: Cannot read property 'firstName' of undefined  

これは私のdocxtemplater.jsファイルです。

const express = require('express'); 
const Docxtemplater = require('docxtemplater'); 
const JSZip = require('jszip'); 
const fs = require('fs'); 
const path = require('path'); 
const bodyParser = require('body-parser'); 

function estateDoc (data) { 

let content = fs.readFileSync(path.resolve(__dirname, 'docxGen.docx'), 'binary'); 

let zip = new JSZip(content); 

let doc = new Docxtemplater(); 
doc.loadZip(zip); 

doc.setData({ 
    firstName: data.firstName, 
    lastName: data.lastName, 
    middleName: data.middleName, 
    suffix: data.suffix, 
    socialSecurity: data.socialSecurity, 
    address: data.address, 
    telephone: data.telephone, 
    heir: data.heir 
}); 
    try { 
     doc.render() 
    } 
    catch (error) { 
     var e = { 
      message: error.message, 
      name: error.name, 
      stack: error.stack, 
      properties: error.properties, 
     } 
     console.log(JSON.stringify({error: e})); 
     throw error; 
    } 
    var buf = doc.getZip() 
       .generate({type: 'nodebuffer'}); 
    fs.writeFileSync(path.resolve(__dirname + '/doc-sender-catcher', 'output.docx'), buf) 
}; 
estateDoc(); 

module.exports = {estateDoc}; 

答えて

0

だから私は、ノードにリファクタリングへの新たな人のためにここにこれを残しています。関数を宣言してからエクスポートして実行する前に関数を呼び出さないでください。私の問題は、データ引数が空の関数を実行していた最後の行でした...

関連する問題