แสดงตัวตรวจความถูกต้อง:กำหนดการตรวจสอบกับ asynchronous ฟังก์ชัน

0

คำถาม

ฉันกำลังพยายามจะพิสูจน์ความถูกต้องของบางอย่า inputs ในแสดงการใช้ แสดงออก-ตัวตรวจความถูกต้อง. ฉันรู้ว่ามันคือความช่วยเหลือจาต้องผ่านมันเป็นการแยกกัน middleware เข้าไปในเส้นทางแต่ฉันต้องการเข้าถึง res วัตถุดังนั้นฉันต้องเขียนมันในทางที่คุณเห็นทางด้านล่างนี้

คนส่วนหนึ่งที่ฉันกำลังพยายามอย่างหนักกับเป็น custom ตัวตรวจความถูกต้อง. ฉันอยากให้เรียกร asynchronous ฟังก์ชัน store.todoListTitleExists(title) นั่นค้นข้อมูลเป็นข้อมูลแล้วเช็คว่ามีชื่อนี้อยู่แล้ว ถ้าหัวเรื่องไม่มีตัวตนของฉันคือความตั้งใจที่จะบันทึกข้อผิดพลาดเกิดขึ้นระหว่างข้อความซึ่งฉันสามารถต่อการแสดงตอนเป็นแฟลชกข้อความไว้

ตอนนี้ดรหัสนี้ไม่ได้ผลหรอก ฉันมองผ่านเอกสารแต่ฉันไม่สามารถดูเหมือนจะคิดหาวิธีที่จะทำให้มันกำหนดเองตัวตรวจความถูกต้อง+ข้อความผิดพลาดงานดีๆหน่อยตั้งแต่มันเรียกว่าเป็น asynchronous ฟังก์ชัน. ที่เขาแนะนำให้ผูกผ้ากันเปื้อนจะเป็น 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

แสดงออก-ตัวตรวจความถูกต้องมีความตั้งใจที่จะ sanitize และพิสูจน์ความถูกต้องของข้อมูลการส่งระหว่างลูกค้าและเครื่องเซิร์ฟเวอร์ เพื่อที่จะจัดการเรื่องนี้เป็นอย่างนั้นนั่นคือ scalable ฉันจะขอแนะนำการใช้แฟ้มจัดการเรื่องทั้งหมดของเว็บไซต์ของคุณโพสร้องขอ(บางอย่างอย่าง routes.js สำหรับตัวอย่าง).

นี่คือตัวอย่างกำหนดเอง router นั่นแสดงเป็นข้อความผิดพลาดคือถ้าการตรวจสอบความผิดพลาด:

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

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

        return true

    }),

ครั้งหนึ่งคุณต้องแยกตัวออกมาทุกการเดินทางจะเป็นเฉพาะแฟ้มคุณสามารถเพิ่มอาร์กิวเมนต์หนึ่งตัวเหมือนตัวอย่างด้านล่างข้อความผิดพลาดที่จะรับใช้กับหน้า(personnaly ฉันใช้ ejs ต้นแบบดังนั้นพวกนี้ข้อความผิดพลาดที่ให้แสดงโดยใช้ตามรหัส:

**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ý
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่