gulp-webserver 모듈에서 POST 요청 지원을 위한 middleware

저는 serve와 gulp-webserver 같은 심플한 웹서버 모듈을 자주 사용하는데요. 이런 모듈은 너무 심플해서인지 GET 방식은 문제가 없지만 POST 요청에는 응답하지 못하고 Cannot POST 에러가 납니다.

그래서 gulp-webserver에서 미들웨어를 만들어 문제를 해결한 경험이 있습니다. 다음 gulpfile.js 코드는 ‘./dist’ 경로에 대해 localhost:4000 으로 웹서버를 띄우고 POST 요청도 지원되는 예제입니다. middleware 부분만 참고하시면 됩니다.

var gulp = require('gulp'),
	fs = require('fs'),
	path = require('path'),
	webserver = require('gulp-webserver');

gulp.task('server', function() {
	var dist = './dist';

	return gulp.src(dist).pipe(webserver({
		host: '0.0.0.0',
		port: 4000,
		livereload: false,
		directoryListing: {
			enable: false,
			path: dist
		},
		middleware: [
			(req, res, next) => {
				var filepath = path.join(path.resolve(__dirname), dist, req.url);

				if (
					'POSTPUTDELETE'.indexOf(req.method.toUpperCase()) > -1
					&& fs.existsSync(filepath) 
					&& fs.statSync(filepath).isFile()
				) {
					res.end(fs.readFileSync(filepath));
				}
				
				next();
			}
		],
		open: false
	}));
});

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.