getAllPosts()
를 사용함.postController.js
import { getAllposts } from "../models/postModel.js";
// GET 게시물 목록
export const getPostsController =async(req, res) => {
try{
const postsData = await getAllPosts();
res.json({
message: "게시물 목록 조회 성공",
data: postsData
});
} catch(error){
console.log(error); //getAllPosts의 reject()인자 리턴됨
res.status(500).json({message: "게시물 목록 조회 실패"});
}
};
postModel.js
import fs from 'fs';
export const getAllPosts = () => {
return new Promise((resolve, reject) => {
fs.readFile(postsFilePath, 'utf-8', (error, data) => {
if(error) return reject(error);
resolve(JSON.parse(data));
});
});
};
postModel.js
import fs from 'fs/promises';
export const getAllPosts = async() => {
try{
const data = await fs.readFile(postsFilePath, 'utf-8');
return JSON.parse(data);
}catch(error){
throw error;
}
};
리팩토링 전에는 직접 Promise객체로 감싸주어야 했지만, fs.promises를 사용하면 await fs.readFile()
만으로도 자동으로 프로미스 객체를 반환한다.