前提・実現したいこと
FileAPIを使って受け取ったcsvファイルをnodeモジュールを使って加工したいです。
そのため、クライアントのlocalhost側からXMLHttpRequestでsend()しているのですがサーバー側のrequestの中身が空になってしまいます。
(localhost側で動きができたらnodeホスティングのglitchにコードをアップする予定です)
該当のソースコード
以下はファイルがアップロードされFileAPIでonload開始した後に発火するクライアントのjavascriptです。
javascript
1**クライアントのJS** 2const parseCSV = (csvData) => { 3 const xhr = new XMLHttpRequest(); 4 xhr.addEventListener("readystatechange", function() { 5 console.log(this.readyState); 6 if(this.readyState === 4) { 7 console.log(this.response); 8 return true; 9 } 10 }); 11 xhr.open("POST", "http://localhost:8000/parse"); 12 xhr.setRequestHeader("Content-Type", "application/json"); 13 xhr.send(csvData); 14} 15
node
1**サーバー側** 2const express = require("express"), 3 app = express(); 4 5//クライアント側を静的ホスティング。(上記のクライアントのJSファイルをホスティング) 6app.use(express.static('public')); 7 8app.use(function(req, res, next) { 9 res.header('Access-Control-Allow-Methods', "GET, POST"); 10 next(); 11}); 12 13app.set("port", process.env.PORT || 8000) 14 15app.post("/parse", (req, res) => { 16 (async() => { 17 //値が何も返ってこない。ここで値を受け取りたい 18 console.log(req.data); 19 console.log(req.params); 20 console.log(req.body); 21 22 res.send('hello world'); 23 })().catch(console.log("done")) 24}) 25 26app.listen(app.get("port"), () => { 27 console.log(`The Express.js server has started and is listening on port number: ${app.get("port")}`); 28});
**ターミナルに返ってくるメッセージ** undefined {} undefined
試したこと
クライアント側のContent-Typeを変えてみたり、xhr.send('hi')のような簡単な文字列で送ってみても空になってしまいます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/31 02:39
2020/05/31 02:41