const express = require('express') const axios = require("axios") // const file = require('fs') // file.readFile('./data/people.csv', 'utf-8', (err, data) => { // if (err) { // console.error(err) // return // } // console.log(data) // const rows = data.split(/\r?\n/); // const header = rows[0].split(',').map(str => str.trim()) // console.log(header) // }); // var XLSX = require('xlsx') // var workbook = XLSX.readFile('./data/Sanagro Product and Catagory list.xlsx'); // var xlData = XLSX.utils.sheet_to_json(workbook.Sheets['Sheet1']); // var data = xlData.map((row) => ({ id: row.No, name: row['Product name'] })) var app = express(); app.get('/', function (req, res) { res.sendFile('/upload.html', { root: __dirname }) }); let port = 5000 app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) }) var multer = require('multer'); const { default: fetch } = require('node-fetch'); var upload = multer(); var XLSX = require('xlsx') app.use(upload.none()); app.post('/upload', async function (req, res) { let input = req.body.myFile; let wb = XLSX.read(input, { type: 'binary' }); let xlData = XLSX.utils.sheet_to_json(wb.Sheets['Sheet2']); let data = xlData.map((row) => ({ productName: row['Product name'], smallTypeName: row.smallTypeName, productCategory: { productCategoryId: row['CategoryID'] }, alert: row.alert, cost: row.cost, qtyStock: row.qtystock, sellPrice: row.sellPrice })) res.send(data) axios({ url: 'http://localhost:4000/graphql', method: 'post', headers: { "authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEsImlhdCI6MTYxNzA3OTYyOCwiZXhwIjoxNjE3MzM4ODI4fQ.p5oAaT3htRbBgKimfr7hxfjNwjWPc5X1finX2zBZ9aM" }, data: { query: ` mutation{ createManyProducts(file: "${JSON.stringify(data)}") } ` } }).then((result) => { console.log(result.data) }); })