Я хочу отправить CSV-файл с сервера на клиент. У меня есть объекты JSON, которые я получаю от MongoDB с помощью ExpressJS Response.Как преобразовать массив вложенных объектов JSON в CSV в NodeJS и ExpressJS
Вот мой код для NodeJS, который принимает почтовый запрос от клиента с идентификатором в теле и с параметром имени коллекции, а в ответе он извлекает данные, относящиеся к этим идентификаторам.
app.post('/api/v1/imagelist_data/raw-data/:db', function(req, res) {
console.log("I received a NEW POST raw-data request");
var dbname = req.params.db;
var myarray = req.body._id;
// Setting Collection Name
var mycollection = db.collection(dbname);
// Convert the list of ids to mongo object ids
var objectIds = myarray.map(function(item) {
return mongojs.ObjectId(item);
});
console.log(objectIds);
mycollection.find({
_id: {
$in: objectIds
}
}, function(err, docs) {
res.json(docs);
});
Теперь я получаю массив объектов в ответ на стороне клиента. Я хочу создать файл CSV с этим массивом объектов.
Массивы объектов выглядят следующим образом.
[
{
"_id": "58405524d70210dc299ca275",
"pictureNumber": 1,
"scAttitude": [
0,
0,
0,
1
],
"scPosition": [
1,
0,
0
],
"integrationTime": 10,
"time": "2016-12-01T16:51:57.000Z",
"offset": 1,
"gain": 2,
"ledStatus": false,
"imageType": "Image",
"cameraType": "Mongo",
"testPatternStatus": false,
"temperatureCCD": 189,
"temperatureLED1": 162,
"temperatureLED2": 152,
"temperatureVBG": 490,
"temperatureGND": 0,
"imageValid": true,
"remarks": " Reception time: Thu Dec 01 17:51:47 CET 2016",
"imageSize": 2271320
},
{
"_id": "586bc534b31a89bb45b0083e",
"pictureNumber": 2,
"scAttitude": [
1,
0,
0,
1
],
"scPosition": [
1,
0,
0
],
"integrationTime": 20,
"time": "2016-12-02T16:51:57.000Z",
"offset": 2,
"gain": 0,
"ledStatus": false,
"imageType": "Image",
"cameraType": "MOngo",
"testPatternStatus": false,
"temperatureCCD": 189,
"temperatureLED1": 162,
"temperatureLED2": 152,
"temperatureVBG": 490,
"temperatureGND": 0,
"imageValid": true,
"remarks": " Reception time: Thu Dec 01 17:51:47 CET 2016",
"imageSize": 2271320
}]
Должен ли я выполнять эту обработку на стороне сервера или на стороне клиента?
Я хочу загрузить CSV-файл с данными на клиентской стороне одним нажатием кнопки.
Как я могу это достичь?
Большое спасибо .. Я новичок в JavaScript. эти две строки дают мне ошибку, когда я пытался использовать ваш код в своем приложении. doc ['scAttitude'] = (doc ['scAttitude'] || []). Join ('-'); doc ['scPosition'] = (doc ['scPosition'] || []).присоединиться('-'); Объект.значения не является функцией at convertObjectsToCsv Не могли бы вы помочь. –
'Object.values' не работает из-за совместимости браузера, https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Object/values. Я предлагаю вам создать собственную функцию getValuesFromObject. У меня есть пример, который использует функцию getValuesFromObject – Apostolidis
Его все еще не работает .. Не могли бы вы посмотреть на JSFiddle вот ссылка: https://jsfiddle.net/1L3Lv4sv/ –