Spaces:
Running
Running
File size: 1,821 Bytes
e4bf523 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | 'use strict'
/**
* Copyright (c) 2018~2019, OBCon Inc.
* All rights reserved.
*/
/**
* @file
* @copyright OBCon Inc. Korea 2018~2019
* @author gye hyun james kim [pnuskgh@gmail.com]
*/
let iconv = require('iconv-lite');
class Csv {
constructor() {
this._characterset = 'utf-8'; //--- utf-8, euc-kr
this._filename = null; //--- ~.csv
}
get characterset() {
return this._characterset;
}
set characterset(newValue) {
this._characterset = newValue;
}
get filename() {
return this._filename;
}
set filename(newValue) {
this._filename = newValue;
}
header(res) {
if (this._characterset == 'euc-kr') {
res.setHeader('Content-Type', 'text/csv;characterset=' + this._characterset + '"');
res.setHeader('content-disposition', 'attachment; filename=' + this._filename);
} else {
res.setHeader('Content-Type', 'text/csv;characterset=utf-8"');
res.setHeader('content-disposition', 'attachment; filename=' + this._filename);
}
}
title(res, header) {
let msg = ((typeof(header) == 'string') ? header:header.join(',')) + '\n';
if (this._characterset == 'euc-kr') {
res.write(iconv.encode(msg, 'EUC-KR'));
} else {
res.write(msg);
}
}
item(res, item) {
let msg = ((typeof(item) == 'string') ? item:item.join(',')) + '\n';
if (this._characterset == 'euc-kr') {
res.write(iconv.encode(msg, 'EUC-KR'));
} else {
res.write(msg);
}
}
end(res) {
res.end();
}
}
module.exports = Csv;
|