Express.js 및 MongoDB를 사용하여 영화 API를 빌드하는 방법 - 소스 코드 포함
5097 단어 expressnoderestjavascript
이 기사에서는 Express 및 MongoDB를 사용하여 영화 REST API를 빌드합니다.
먼저 몽구스를 사용하여 Movie 데이터베이스 모델을 구현합니다. 그런 다음 영화 CRUD 작업(만들기, 읽기, 업데이트, 삭제)을 처리할 컨트롤러를 만듭니다. 마지막으로 경로를 만듭니다.
참고: GitHub에서 코드를 자유롭게 복제하십시오.
이 링크를 참조하지 않는 경우 Node.js 및 MongoDB를 설치했는지 확인하세요 👇
MongoDB
NodeJS
1. 프로젝트 설정
터미널을 열고 다음 명령을 복사합니다.
npm init -y
npm i express mongoose body-parser nodemon
2. 몽고DB에 연결
Linux 및 macOS에서
새 터미널을 열고 다음 명령을 복사합니다.
sudo mongod
Windows에서는 mongodb 나침반을 사용하여 연결하십시오.
3. 프로젝트 구조
MOVIES-API/
├─ controllers/
│ ├─ movie.controller.js
├─ models/
│ ├─ movie.model.js
├─ routes/
│ ├─ movie.route.js
├─ server.js
├─ package.json/
4. 익스프레스 서버 설정
이 코드를
server.js
에 복사합니다.const express = require("express");
const mongoose = require("mongoose");
const bodyParser = require("body-parser");
const movieRouter = require("./routes/movie.route");
const app = express();
app.get("/", (req, res) => {
return res.send("Movies REST API");
});
app.use(bodyParser.json());
mongoose.connect("mongodb://localhost:27017/movies-api", {
useNewUrlParser: true,
useUnifiedTopology: true,
});
app.use("/", movieRouter);
app.listen(4000, () => {
console.log("Listening on port 4000");
});
pacakage.json
에서 dev
명령을 scripts
개체에 추가합니다. "scripts": {
"dev": "nodemon server.js"
},
5. 데이터베이스 모델
이 코드를
models/movie.model.js
에 복사합니다.const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const MovieSchema = Schema({
title: {
type: String,
required: "Please enter movie title",
},
genre: String,
rating: Number,
isReleased: {
type: Boolean,
default: true,
},
});
module.exports = mongoose.model("Movie", MovieSchema);
6. 루트
이 코드를
routes/movie.route.js
에 복사합니다.const express = require("express");
const router = express.Router();
const {
createMovie,
getAllMovies,
getMovieById,
updateMovie,
deleteMovie,
} = require("../controllers/movie.controller");
router.route("/api/movies").get(getAllMovies).post(createMovie);
router
.route("/api/movies/:movieId")
.get(getMovieById)
.put(updateMovie)
.delete(deleteMovie);
module.exports = router;
7. 컨트롤러
이 코드를
routes/movie.controller.js
에 복사합니다.const Movie = require("../models/movie.model");
const getAllMovies = (req, res) => {
Movie.find({}, (error, movies) => {
if (error) return res.status(400).json({ error: "Can't get movies" });
return res.json(movies);
});
};
const getMovieById = (req, res) => {
const { movieId } = req.params;
Movie.findById(movieId, (error, movie) => {
if (error) return res.status(400).json({ error: "Can't find movie" });
if (movie) return res.json({ movie: movie });
return res.status(404).json({ error: "No movie found" });
});
};
const updateMovie = (req, res) => {
const { movieId } = req.params;
const movie = req.body;
Movie.findOneAndUpdate(
{ _id: movieId },
movie,
{ new: true },
(error, updatedMovie) => {
if (error) return res.status(400).json({ error: "Can't update movie" });
console.log(updatedMovie);
return res.json({ movie: updatedMovie });
}
);
};
const deleteMovie = (req, res) => {
const { movieId } = req.params;
Movie.findByIdAndDelete(movieId, (error) => {
if (error) return res.status(400).json({ error: "Can't delete movie" });
return res.json({ message: "Deleted successfully" });
});
};
const createMovie = (req, res) => {
const movie = new Movie(req.body);
movie.save((err, data) => {
if (err) return res.status(400).json({ error: "Couldn't create movie" });
return res.json({ movie: data });
});
};
module.exports = {
getAllMovies,
createMovie,
updateMovie,
deleteMovie,
getMovieById,
};
8. 프로젝트 실행
새 터미널 열기
npm run dev
요약
이 튜토리얼에서는 Express 및 MongoDB를 사용하여 영화 CRUD 작업을 관리하기 위한 REST API를 구축했습니다.
이 튜토리얼이 도움이 되었기를 바랍니다.
Reference
이 문제에 관하여(Express.js 및 MongoDB를 사용하여 영화 API를 빌드하는 방법 - 소스 코드 포함), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/rawda_developer/how-to-build-a-movies-api-using-expressjs-and-mongodb-with-source-code-4i47텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)