カメラ撮影したものをサーバーにアップロードする仕組みを作っています。
クライアント側コードはまた別途
今回はサーバー側のミニマム構成っぽいものを書いてみたのでメモです。
環境はNode.js v8.2.0
です。
準備
expressだけ使っているので
npm i --save express
だけはやります。
コード
server.js
'use strict';
const fs = require('fs');
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
app.get('/', (req, res) => res.send('POSTでアップロードしてください。'));
app.post('/', (req, res) => {
let buffers = [];
let cnt = 0;
req.on('data', (chunk) => {
buffers.push(chunk);
console.log(++cnt);
});
req.on('end', () => {
console.log(`[done] Image upload`);
req.rawBody = Buffer.concat(buffers);
//書き込み
fs.writeFile('./img.jpeg', req.rawBody, 'utf-8',(err) => {
if(err) return;
console.log(`[done] Image save`);
});
});
});
app.listen(PORT);
実行
node app.js
こんな感じで普通にサーバーを立てます。
その後画像データが送信されるとこんな感じでプログレス表示のように表示されます。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[done] Image upload
[done] Image save
無事に保存できました。