node+express导出csv
时间: 2023-07-30 12:05:24 浏览: 86
要在 Node.js 和 Express 中导出 CSV 文件,你需要使用一个名为 `csv-writer` 的第三方模块。可以通过以下命令来安装:
```
npm install csv-writer
```
接下来,你需要在你的 Node.js 代码中导入 `csv-writer` 模块,并创建一个 CSV 写入器对象。以下是一个简单的示例代码:
```javascript
const createCsvWriter = require('csv-writer').createObjectCsvWriter;
const csvWriter = createCsvWriter({
path: 'output.csv',
header: [
{ id: 'name', title: 'Name' },
{ id: 'age', title: 'Age' },
{ id: 'gender', title: 'Gender' },
]
});
const data = [
{ name: 'John', age: 30, gender: 'Male' },
{ name: 'Jane', age: 25, gender: 'Female' },
{ name: 'Bob', age: 40, gender: 'Male' },
];
csvWriter.writeRecords(data)
.then(() => console.log('The CSV file was written successfully'));
```
在上面的代码中,我们首先使用 `createCsvWriter()` 函数创建了一个 CSV 写入器对象。该函数的参数包括一个文件路径和一个表头数组,表头数组中包含了每一列的标题和 ID。
接下来,我们创建了一个数据数组,它包含了要写入 CSV 文件的数据。
最后,我们使用 `writeRecords()` 方法将数据写入 CSV 文件中。在该方法的回调函数中,我们可以输出一条消息来告诉用户 CSV 文件已经成功地写入了。
在这个示例代码中,我们将 CSV 文件写入磁盘上的 `output.csv` 文件中。如果你想将 CSV 文件发送给用户进行下载,你可以使用 Express 的 `res.attachment()` 和 `res.sendFile()` 方法来实现。以下是一个示例代码:
```javascript
app.get('/export-csv', (req, res) => {
const createCsvWriter = require('csv-writer').createObjectCsvWriter;
const csvWriter = createCsvWriter({
path: 'output.csv',
header: [
{ id: 'name', title: 'Name' },
{ id: 'age', title: 'Age' },
{ id: 'gender', title: 'Gender' },
]
});
const data = [
{ name: 'John', age: 30, gender: 'Male' },
{ name: 'Jane', age: 25, gender: 'Female' },
{ name: 'Bob', age: 40, gender: 'Male' },
];
csvWriter.writeRecords(data)
.then(() => {
res.attachment('output.csv');
res.sendFile(__dirname + '/output.csv');
});
});
```
在上面的代码中,我们创建了一个路由处理程序来响应用户的请求。在该处理程序中,我们使用 `csv-writer` 模块将数据写入 CSV 文件中,并通过 `res.attachment()` 方法告诉浏览器将该文件作为附件进行下载。最后,我们使用 `res.sendFile()` 方法将该文件发送给用户。
相关推荐
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![.zip](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)