如何在feathers api中写入和下载csv文件?
How to write and download csv file in feathers api?
我正在尝试使用 api 在 csv 文件中创建 api 导出数据,这意味着我想使用 feathers 服务下载 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();
}]
}
});
格式化响应不是在钩子中完成的,而是在带有 general custom formatter or a service specific middleware 的 Express 中间件中完成的。
注册/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);
});
我正在尝试使用 api 在 csv 文件中创建 api 导出数据,这意味着我想使用 feathers 服务下载 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();
}]
}
});
格式化响应不是在钩子中完成的,而是在带有 general custom formatter or a service specific middleware 的 Express 中间件中完成的。
注册/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);
});