2017-11-21 9 views
0

私はAPIを使用してCSVファイル内にエクスポートデータ用のAPIを作成しようとしています。つまり、私はfeathersサービスを使用してCSVファイルをダウンロードします。feathers apiでcsvファイルを書き込んでダウンロードするには?

app.service('/csv').hooks({ 
    before: { 
    create: [ function(hook, next) { 
     const dataToStore = [ 
      { 
      to: 'marshall', 
      from: 'marshall', 
      body: 'Stop talking to that rubber ducky!' 
      }, { 
      to: 'marshall', 
      from: 'marshall', 
      body: `...unless you're rubber duck debugging.` 
      } 
     ] 
     hook.data = dataToStore; 
     next(); 
     } 
    ] 
    }, 
    after: { 
    create: [ function(hook,next){ 
     // here i need imported data to be write in csv and make api side as downloadable 
     // when i hit the service i want to download file in csv file format. 
     hook.result.code = 200; 
     next(); 
     } 
    ] 
    }, 
    error: { 
    create: [function(hook, next){ 
     hook.error.errors = { code : hook.error.code }; 
     hook.error.code = 200; 
     next(); 
    }] 
    } 
}); 

答えて

2

応答がフックではなく、どちらかgeneral custom formatterまたはservice specific middlewareとエクスプレスミドルウェアで行われていないフォーマット。

/csvサービス(サービスコールデータはres.dataになります)登録時に最後にそれを追加します。

const json2csv = require('json2csv'); 
const fields = [ 'to', 'from', 'body' ]; 

app.use('/csv', createService(), function(req, res) { 
    const result = res.data; 
    const data = result.data; // will be either `result` as an array or `data` if it is paginated 
    const csv = json2csv({ data, fields }); 

    res.type('csv'); 
    res.end(csv); 
}); 
関連する問題