Nodejs tạo tệp CSV từ mảng

Điều tương tự cũng xảy ra với tôi. Tôi muốn có một bộ dữ liệu thông tin thích hợp về từng pokemon, vì vậy tôi bắt đầu tìm kiếm các API hoặc gói npm khác nhau

Tôi không thể tìm thấy mọi thứ tôi đang tìm kiếm trong một nguồn duy nhất, nhưng tôi có thể tìm thấy nó được phân phối trong 2 gói khác nhau. Vì vậy, tôi quyết định trích xuất thông tin cần thiết từ mỗi thông tin thành CSV

Và, (tôi không khoe khoang), tôi đã có thể làm điều đó trong vòng chưa đầy 2 phút. Làm sao? . Trong blog này, bạn sẽ tìm hiểu về cách bạn có thể chuyển đổi mảng đối tượng của mình thành tệp CSV ngay lập tức. Bắt đầu nào

Trong trường hợp bạn chỉ quan tâm đến mã, bạn có thể tìm thấy nó trong repo GitHub này

MadhavBahlMD/pokeData

Học cách viết tệp CSV bằng NodeJS bằng cách tạo Bộ dữ liệu Pokemon của riêng chúng tôi. Cách tôi tạo bộ dữ liệu pokemon của mình trong 2 phút ᕦ(…

github. com

Về các gói

Đối với dữ liệu pokemon, tôi đã tìm thấy ba gói này với các sự cố nhất định —

  1. pokedex — Không thể tìm kiếm tất cả pokemon cùng lúc
  2. pokemon — Chỉ là một danh sách tất cả các pokemon, nhưng giải quyết được vấn đề lấy tất cả các pokemon
  3. object-to-csv — Chuyển đổi một mảng các đối tượng JavaScript thành định dạng CSV. Cứu tinh

Vì vậy, tôi quyết định kết hợp những. )

Cài đặt các gói

Tôi đoán là tôi không cần nói cho bạn biết các bước này nếu bạn đã quen thuộc với NodeJS, nhưng một lần nữa, nếu bạn đến từ một ngôn ngữ khác, tôi sẽ chỉ cho bạn cách cài đặt các bước này.

Chỉ cần một lệnh duy nhất

npm install --save objects-to-csv pokemon pokedex
Viết kịch bản

Tuyệt vời, bây giờ đến phần chính. Trước khi tiếp tục, hãy xem phản hồi mà chúng tôi nhận được từ hai gói trên

Gói Pokemon

Gói này có thể được sử dụng để lấy tên/id của một pokemon cụ thể. Nó cũng có thể được sử dụng để lấy danh sách tất cả các pokemon

const pokemon = require('pokemon');pokemon.all();
//=> ['Bulbasaur', …]

Gói Pokedex

Gói này có thể được sử dụng để lấy thông tin về pokemon bao gồm cả sprite của chúng

var Pokedex = require('pokedex'),
pokedex = new Pokedex();
console.log( pokedex.pokemon('garbodor') );

Kết quả sẽ là —

{
id: 569,
species_id: 569,
height: 19,
weight: 1073,
base_experience: 166,
order: 617,
is_default: 1,
name: 'garbodor',
sprites: {
normal: 'http://img.pokemondb.net/sprites/black-white/normal/garbodor.png',
animated: 'http://img.pokemondb.net/sprites/black-white/anim/normal/garbodor.gif'
}
}

Vì vậy, bạn có thể đoán, tôi muốn có một bản csv về những chi tiết này cho tất cả các pokemon. Hãy làm kịch bản

Cũng giống như trong bất kỳ dự án nút nào khác, bước đầu tiên là nhập Thư viện

const ObjectsToCsv = require('objects-to-csv')
const Pokedex = require('pokedex');
const pokemon = require('pokemon');

Bây giờ, hãy tạo một phiên bản của Pokedex và nhận tất cả các pokemon

const pokedex = new Pokedex();
let pokemons = pokemon.all();

Bây giờ, hãy tạo một mảng các đối tượng trong đó mỗi đối tượng có thông tin về pokemon. Đừng quên xâu chuỗi các đối tượng lồng nhau (Nếu không, chúng sẽ tạo ra sự cố khi ghi vào CSV)

let pokemonData = pokemons.map (pokemon => {
let pokemonDetails = pokedex.pokemon(pokemon.toLowerCase());
// Stringify the nested object
pokemonDetails = {
...pokemonDetails,
sprites: JSON.stringify(pokemonDetails.sprites)
}
return pokemonDetails;
})

Được rồi, đây là bước cuối cùng của chúng ta, ghi vào CSV

Tôi đang sử dụng thư viện

const pokemon = require('pokemon');pokemon.all();
//=> ['Bulbasaur', …]
0 giúp công việc thực sự đơn giản. Xem đoạn mã sau, nó tự giải thích

________số 8

Bây giờ chúng ta đã làm được đến đây, hãy chạy nó

node fileName.js

Và đó là nó. Ảo thuật. CSV của chúng tôi đã sẵn sàng

Đây là mã hoàn chỉnh -

Đó là nó, hy vọng bạn thấy bài viết hữu ích

Vui lòng liên hệ với tôi bất cứ lúc nào nếu bạn muốn thảo luận điều gì đó. D

Tôi sẽ rất vui nếu bạn gửi phản hồi, đề xuất hoặc đặt câu hỏi. Hơn nữa, tôi thích kết bạn mới và chúng ta có thể là bạn, chỉ cần gửi thư cho tôi

Cảm ơn rất nhiều vì đã đọc đến cuối. Bạn có thể liên hệ với tôi trong trường hợp nếu bạn cần bất kỳ sự trợ giúp nào.
Email. theleanprogrammer@gmail. com
Web. http. //madhavbahl. tech/
Github. https. //github. com/MadhavBahlMD
LinkedIn. https. //www. linkin. com/in/madhavbahl/
Instagram. https. //www. instagram. com/theleanprogrammer/

Ghi chú từ JavaScript bằng tiếng Anh thuần túy

Chúng tôi đã ra mắt ba ấn phẩm mới. Thể hiện tình yêu dành cho các ấn phẩm mới của chúng tôi bằng cách theo dõi chúng. AI bằng tiếng Anh thuần túy, UX bằng tiếng Anh thuần túy, Python bằng tiếng Anh thuần túy — cảm ơn bạn và hãy tiếp tục học hỏi

Chúng tôi cũng luôn quan tâm đến việc giúp quảng bá nội dung chất lượng. Nếu bạn có một bài viết mà bạn muốn gửi cho bất kỳ ấn phẩm nào của chúng tôi, hãy gửi email cho chúng tôi theo địa chỉ submits@plainenglish. io bằng tên người dùng Phương tiện của bạn và chúng tôi sẽ thêm bạn làm nhà văn. Ngoài ra, hãy cho chúng tôi biết bạn muốn thêm ấn phẩm nào vào