var express = require('express'); var app = express(); var multer = require('multer') var cors = require('cors'); var bodyParser = require("body-parser"); var https = require('https') const util = require('util'); const fs = require('fs'); var corsOptions = { "origin": "*", "methods": "GET,HEAD,PUT,PATCH,POST,DELETE", "preflightContinue": false, "optionsSuccessStatus": 204 } app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cors(corsOptions)); function callLoadInitializeData(req, res, resdata){ _email = req.query.email; let url = `https://natnats.mobilous.com/loadInitializeData?projectid=23&construction_id=${resdata.construction_id}&username=${_email}&sheetname=${resdata.file_type}&filename=${resdata.file_name}` console.log(url); https.get(url, (resp) => { let data = ''; // A chunk of data has been received. resp.on('data', (chunk) => { data += chunk; }); // The whole response has been received. Print out the result. resp.on('end', () => { if(data !== 'no match'){ resdata = { "status": "INSERT ERROR", "detail": { "sheetname": "ini_データ入力シート", "construction_id": "5" } } //resdata = JSON.parse(data); console.log(resdata.status); if(resdata.status=="complete"){ res.status(200).send('OK'); }else if(resdata.status=="INSERT ERROR"){ res.status(204).json("insert error"); } } }); }).on("error", (err) => { console.log("Error: " + err.message); }); } function callInitFileMover(req, res) { https.get('https://natnats.mobilous.com/iniFileMover', (resp) => { let data = ''; // A chunk of data has been received. resp.on('data', (chunk) => { data += chunk; }); // The whole response has been received. Print out the result. resp.on('end', () => { //debug // data = `{ // "construction_id": 3, // "file_name": "ini_データ入力シート.xlsx", // "file_type": "dataSheet" // }` if(data !== 'no match'){ resdata = JSON.parse(data); console.log(resdata); callLoadInitializeData(req, res, resdata); } }); }).on("error", (err) => { console.log("Error: " + err.message); }); } var storage = multer.diskStorage({ destination: function(req, file, cb) { cb(null, '/var/www/html/FBS') }, filename: function(req, file, cb) { cb(null, file.originalname) } }) var upload = multer({ storage: storage }).single('file') app.post('/upload', function(req, res, next) { console.log('email is ' + req.query.email); upload(req, res, function(err) { if (err instanceof multer.MulterError) { return res.status(500).json(err) } else if (err) { return res.status(500).json(err) } else { var FileName = req.file.filename; callInitFileMover(req, res); //res.status(200).send(FileName); } //return res.status(200).send(req.file) }) }); const converter = require('json-2-csv'); app.post('/csv', (req, res, next) => { const csv = req; userData = req.body; converter.json2csv(userData, (err, csv) => { if (err) { throw err; } writetoFile(csv); // print CSV string console.log(csv); }); res.send("OK"); }); function writetoFile(csv) { fs.writeFile('/var/www/html/appexe/natnats/23/bin/mobileweb2/resources/database/user_record.csv', csv, err => { if (err) { console.error(err) return } }) } app.listen(8000, function() { console.log('App running on port 8000'); });