curl -o- <https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh> | bash
source ./bashrc
nvm install 20.12.1
npm install express -g # global 옵션으로 express 설치
express <project_name>
cd <project_name>
npm install
var express = require("express");
var payload = require("../utils/payload-util");
var router = express.Router();
/* GET home page. */
router.get("/", function (req, res, next) {
res.json(payload.success("home", {}));
});
router.get("/api/v1/status", function (req, res, next) {
res.json(payload.success("fine", {}));
});
module.exports = router;
module.exports = {
success: function (message, obj) {
return {
timestamp: Date.now(),
data: {
message: message,
detail: obj
}
};
},
error: function (status, code, message) {
return {
timestamp: Date.now(),
error: {
status: status,
code: code,
message: message
}
};
}
};
app.js 상단에 utils/payload-util.js 로드 하고 핸들러 구현
var createError = require("http-errors");
var express = require("express");
var path = require("path");
var cookieParser = require("cookie-parser");
var logger = require("morgan");
var payload = require("./utils/payload-util"); // 해당 라인 추가
var indexRouter = require("./routes/index");
var app = express();
app.use(logger("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, "public")));
app.use("/", indexRouter);
// 이하 코드 추가
// error handler
app.use(function (err, req, res, next) {
// set locals, only providing error in development
res.locals.message = err.message;
res.locals.error = req.app.get("env") === "development" ? err : {};
// render the error page
const status = err.status || 500;
const code = err.code || -1;
res.status(status);
res.json(payload.error(status, code, err.message));
});
// 여기까지
Serverless 프레임워크 설치
npm install -g serverless
Serverless 서비스 생성
serverless create --template aws-nodejs
미들웨어 설치
npm install serverless-http
handler.js 수정