Express 검증:사용자 정의 유효성을 가진 비동기 기능

0

질문

나는 현재력을 검증하는 일부 입력에서 표현을 사용하여 표현하고 검사. 내가 알고있는 그것의 일반적으로 전달 별도의 미들웨어로 노선이지만,필요에 액세스 res 체,그래서 나는 그것을 쓰는 방법으로 아래를 참조하십시오.

일부는 고민입니다 custom 검증이다. 나는 그것을 호출하는 비동기식 기능 store.todoListTitleExists(title) 를 쿼리하는 데이터베이스를 검사하는 경우 타이틀에 이미 존재합니다. Title 존재하지 않는,나의 기도는 저장하는 오류 메시지가 표시할 수 있습으로 플래시 메시지입니다.

현재,이 코드가 작동되지 않습니다. 나는 보았을 통해서 그러나 나는 할 수 없을 것 같은 그림을 만드는 방법이 사용자 지정 validator+오류 메시지가 제대로 작동 이후 호출하는 비동기 기능이다. 어떤 도움이 될 것입 apprecated.

감사합니다!

app.post("/lists/:todoListId/edit", 
    (req, res) => {
    let store = res.locals.store;
    let todoListId = req.params.todoListId;
    let title = req.body.todoListTitle;

    await body('todoListTitle')
          .trim()
          .isLength({ min: 1 })
          .withMessage("The list title is required.")
          .isLength({ max: 100 })
          .withMessage("The list title cannot be over 100 characters")
          .custom(store.todoListTitleExists(title).then(titleExists => {
            if(titleExists) return Promise.reject('Title already exists');
          }))
2

최고의 응답

0

body("feildName", "Feild must be selected")
.custom(value=> {

    titleExists=await store.todoListTitleExists(value)
    if(titleExists){
    Promise.reject('title exists')
    }
    return true


    return true

}),
2021-12-24 05:31:48
-1

익스프레스-검사한 살균 및 검증되고 있는 데이터 사이에 보내는 클라이언트와 서버입니다. 기 위해서는 이를 처리하기 위한 방법으로는 확장 가능한 권하고 싶을 사용하여 파일을 처리하는 모든 사이트는 게시물을 요청(뭔가 routes.js 예를 들어).

샘플 사용자 지정 라우터 오류 메시지를 표시하는 유효성 검사에 실패한 경우에는:

body("feildName", "Feild must be selected")
    .custom(val => {

        if (val.feildName == "Select...") return false

        return true

    }),

일단 당신이 절연 모든 라우팅을 특정 파일에 추가할 수 있습니 인수는 아래의 예와 같은 오류 메시지와 함께 제공되는 페이지(personnaly 사용 얻을 수 있게 해주는 템플릿에서 이러한 오류 메시지가 표시됩니다 다음 코드를 사용하면 사용:

**controller.js**
    const errors = validationResult(req);
    const {
        body
    } = req;

    if (!errors.isEmpty()) {
        return res.render('index', {
            error: errors.array()[0].msg
        });
    }

    res.render("index");

**index.ejs**
<div class="error">
        <% if(typeof error !== 'undefined'){ %>
              <div class="err-msg"><%= error %></div>
        <% } %>
</div>
2021-11-23 19:09:05

다른 언어로

이 페이지는 다른 언어로되어 있습니다

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................