node.js 및 MySql을 사용하여 삭제 끝점을 만드는 방법
3086 단어 javascriptmysqlnodeprogramming
routes.js
파일에서 끝점을 정의합니다.router.delete( "/delete-user/:userId", authentication, authorise({ roles: [ADMIN] }), deleteUserById );
이 끝점에서는 URL, 미들웨어 및 컨트롤러를 사용합니다.
엔드포인트는 사용자 ID로 사용자 레코드를 삭제합니다. 즉, req.params에서 사용자 ID를 확인하고 yup으로 유효성을 검사한 다음 작업 기능으로 사용자를 제거한 다음 응답을 제공합니다.
const removeUserById = require("~root/actions/users/removeUserById");
const handleAPIError = require("~root/utils/handleAPIError");
const deleteUserByIdSchema = require("./schemas/deleteUserByIdSchema");
const deleteUserById = async (req, res) => {
const { userId } = req.params;
try {
await deleteUserByIdSchema.validate(
{ userId },
{
abortEarly: false
}
);
await removeUserById({
userId
});
res.status(200).send();
} catch (err) {
handleAPIError(res, err);
}
};
module.exports = deleteUserById;
빠른 팁: 컨트롤러:"delete"(컨트롤러는 항상 CRUD 작업으로 이름이 지정됩니다. 그래서 컨트롤러 이름이 항상 delete,put,post,get 등으로 지정됩니다.) => Action:"remove"
userId
가 있고 {deleteUser}
를 반환합니다.const deleteUserById = require("./queries/deleteUserById");
const removeUserById = async ({ userId }) => {
const deletedUser = await deleteUserById({ userId });
return { deletedUser };
};
module.exports = removeUserById;
removeUserById
폴더 안에 쿼리 폴더를 만듭니다. 우리는 이 프로젝트에 MySQL을 사용하고 있습니다. 기본적으로 데이터베이스에 "사용자 테이블에서 user_id와 연결된 사용자 레코드를 찾으십시오"라고 알려야 합니다.const { submitQuery } = require("~root/lib/database");
const deleteUserById = ({ userId }) => submitQuery`
DELETE FROM users
WHERE user_id = ${userId};
`;
module.exports = deleteUserById;
schemas
폴더 안에 deleteUserById
폴더를 만듭니다. user_id가 number,required?, positive(!-), integer?인지 확인할 수 있습니다. 또는 레이블("")이 있습니다.const yup = require("yup");
const deleteCuttingToolByIdSchema = yup.object().shape({
userId: yup
.number()
.required()
.positive()
.integer()
.label("User ID")
.typeError("User ID must be a number.")
});
module.exports = deleteCuttingToolByIdSchema
ON DELETE CASCADE
명령을 사용할 수 있습니다. 이 명령은 ON CASCADE DELETE 명령을 포함하는 모든 레코드에 대한 레코드를 삭제합니다. 다음과 같습니다. 그래서 FOREING KEY에 해당 명령을 입력합니다. user_id 열을 참조하는 모든 테이블에 아래와 같이 변경해야 합니다.FOREIGN KEY (user_id) REFERENCES users(user_id) ON DELETE CASCADE
Reference
이 문제에 관하여(node.js 및 MySql을 사용하여 삭제 끝점을 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ahmetakinsel/how-to-create-a-delete-endpoint-with-nodejs-and-mysql-17bn텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)