-
Notifications
You must be signed in to change notification settings - Fork 0
[BE] 코드 컨벤션
CHOI HYOJONG edited this page Oct 25, 2024
·
2 revisions
자바스크립트 관습에 따라 변수 및 함수명은 camelCase로 작성합니다.
const userName = "John Doe";
const findUserById = (id) => { /* ... */ };
- Mongoose 스키마는 별도의 models 디렉토리에 분리하여 정의
- 스키마 정의 시, timestamps 옵션을 통해 자동으로 생성 및 수정 시간을 기록
const userSchema = new mongoose.Schema({
username: { type: String, required: true },
email: { type: String, required: true, unique: true },
password: { type: String, required: true },
}, { timestamps: true });
- Async/Await: 비동기 코드를 작성할 때 async/await 패턴을 사용하여 콜백 지옥을 방지하고, 에러 처리를 위해 try/catch 블록을 사용
- Promise는 then과 catch를 남용하게 되면 중첩된 체이닝 문제가 생길 수 있음
const getUser = async (req, res) => {
try {
const user = await User.findById(req.params.id);
if (!user) return res.status(404).send('User not found');
res.status(200).json(user);
} catch (error) {
res.status(500).send('Server error');
}
};
dotenv를 사용하여 민감한 정보를 .env 파일에 저장합니다. 중요한 정보를 하드코딩하지 않도록 주의하고, .env 파일은 .gitignore에 추가합니다.
require('dotenv').config();
const dbConnection = process.env.DB_CONNECTION_STRING;
mongoose.connect(dbConnection, { useNewUrlParser: true, useUnifiedTopology: true });
JSDoc: 코드에 대한 설명을 제공하기 위해 JSDoc을 사용합니다. 이를 통해 함수, 매개변수, 반환값 등을 문서화합니다.
/**
* Find a user by ID
* @param {string} id - The user ID
* @returns {Promise<User>} - Returns a promise that resolves to a User object
*/
const findUserById = async (id) => {
return await User.findById(id);
};