Node.js でテスト用サーバー
テスト用に HTTP サーバーを立てる方法
手順
-
index.js を作成する。
const http = require('http');
const server = http.createServer();
server.on('request', async (req, res) => {
console.log(req.url);
res.writeHead(200);
res.end('OK\r\n');
});
server.listen(8080); -
HTTP サーバーを起動する
npm install -g http-server
node index.js -
テスト
curl -v http://localhost:8080
実装例
レスポンスを返す
const http = require('http');
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
const server = http.createServer();
server.on('request', async (req, res) => {
console.log(req.url);
res.writeHead(500);
res.end('Internal Server Error\r\n');
});
server.listen(8080);
スリープ
応答まで時間をかけたり、タイムアウトのテストに。
const http = require('http');
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
const server = http.createServer();
server.on('request', async (req, res) => {
console.log(req.url);
await sleep(1000);
res.writeHead(200);
res.end('OK\r\n');
});
server.listen(8080);
ファイルを返す
const http = require('http');
const fs = require('fs');
const filePath = 'testfile';
const server = http.createServer();
server.on('request', async (req, res) => {
console.log(req.url);
const stat = fs.statSync(filePath);
res.writeHead(200, {
'Content-Type': 'application/octet-stream',
'Content-Length': stat.size
});
fs.createReadStream(filePath).pipe(res);
});
server.listen(8080);