【发布时间】:2021-08-17 16:43:41
【问题描述】:
我在 Node JS 中有一个项目,我想通过视图中的按钮 (index.ejs) 将 Mongo DB 中数据库中包含的数据导出到 CSV 文件中。
我正在使用mongoose 连接到数据库并将数据导出到我正在尝试使用json-2-csv 的CSV。
在按钮中,我添加了一个 url,以便能够通过按钮调用该 url,并且 json-2-csv 函数响应该 url,但我不知道该怎么做,或者它是否是最好的方式。
这是我的app.js:
const fs = require('fs');
const json2csv = require("json2csv").Parser;
const userModel = require('./models/users');
const express = require("express");
const app = express();
app.get('/export/csv', async (req, res) => {
await userModel.find((err, data) => {
if (err) throw err;
const json2csvParser = new json2csv({ header: true });
const csvData = json2csvParser.parse(data);
fs.writeFile("users.csv", csvData, function(error) {
if (error) throw error;
console.log("Write to bezkoder_mongodb_fs.csv successfully!");
});
});
});
这是button:
<form action="/export/csv" mehotd="GET">
<button id="export-csv">Export CSV</button>
</form>
【问题讨论】:
-
首先,您需要建立一个DB连接,并且需要在DB中有数据。你做的方式很好,所以你在哪里卡住了,你能解释一下吗?
-
@kedarsedai 如果在 app.js 或控制器中,我不知道将函数放在哪里,也不知道如何将连接导入数据库。而且,我想要做的是从按钮调用它,但我也不能这样做,我不知道如何添加到响应该 url 的函数
标签: node.js mongodb mongoose ejs json2csv