node.js를 위한 빠르고 쉬운 웹 프레임워크,
파이썬의 Django, 자바의 spring..
Visual Studio Code를 사용한다면 더욱 쉽게 설치가 가능하다.
npm init
{
"name": "express-test",
"version": "1.0.0",
"description": "",
"main": "index.js", // 메인 자바스크립트 파일
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": { // 사용한 패키지 목록
"express": "^4.18.2"
}
}
예제 package.json이다. npm init설치중 참고해서 작성하면 된다.
이름과 버전만 기록되고 버전도 명확하게 저장되는 것이 아니기 때문에 package-lock.json이라는 파일이 생성되며 해당 파일에는 사용한 Npm 패키지에 대한 구체적인 내용이 저장된다.
다음의 명령어를 터미널에 입력하여 express를 설치한다.
npm install express
package.json의 main에 저장되어 있는 이름으로 자바스크립트 파일을 생성한 후 아래의 코드를 입력한다.
//express를 사용하겠다.
const express = require("express");
const cors = require("cors");
const app = express();
const whitelist = ["http://localhost"];
//localhost:3030
app.set("port", process.env.PORT || 3030);
app.set("host", process.env.HOST || "0.0.0.0");
일반적인 웹브라우저에서는 post로 데이터를 전송,전송 받는 것은 불가능하다.
서버에 접속하는 코드를 작성하여 post방식으로 통신하여야 한다.
npm install cors
const cors = require("cors");
const express = require("express");
const cors = require("cors");
const app = express();
const whitelist = ["http://localhost"];
app.set("port", process.env.PORT || 3030);
app.set("host", process.env.HOST || "0.0.0.0");
app.use(
cors({
origin(req, res) {
console.log("접속된 주소: " + req),
-1 == whitelist.indexOf(req) && req
? res(Error("허가되지 않은 주소입니다."))
: res(null, !0);
},
credentials: !0,
optionsSuccessStatus: 200,
})
);
app.all("/*", function (req, res, next) {
let ip = req.headers.origin;
(-1 == whitelist.indexOf(ip) && ip) ||
(res.header("Access-Control-Allow-Origin", ip),
res.header("Access-Control-Allow-Headers", "X-Requested-With"),
next());
});
app.get("/", function (req, res) {
res.send("접속된 아이피: " + req.ip);
});
app.listen(app.get("port"), app.get("host"), () =>
console.log(
"Server is running on : " + app.get("host") + ":" + app.get("port")
)
);