एक्सप्रेस सत्यापनकर्ता: कस्टम सत्यापन के साथ अतुल्यकालिक कार्यों

0

सवाल

मैं वर्तमान में हूँ की कोशिश कर रहा है मान्य करने के लिए कुछ में आदानों का उपयोग कर व्यक्त एक्सप्रेस-सत्यापनकर्ता. मुझे पता है कि यह ठेठ इसे पारित करने के लिए के रूप में एक अलग मिडलवेयर में मार्ग है, लेकिन मैं की जरूरत का उपयोग करने के लिए res वस्तु है, तो मैं था इसे लिखने के लिए रास्ते में आप नीचे देखें ।

हिस्सा है कि मैं कर रहा हूँ के साथ संघर्ष कर रही है custom सत्यापनकर्ता. मैं यह करना चाहते हैं कॉल करने के लिए एक अतुल्यकालिक समारोह store.todoListTitleExists(title) है कि प्रश्नों का एक डाटाबेस और जाँच अगर एक शीर्षक पहले से ही मौजूद है । यदि शीर्षक मौजूद नहीं है, मेरा इरादा है करने के लिए बचाने के लिए एक त्रुटि संदेश है जो मैं बाद में कर सकते हैं प्रदर्शन एक फ्लैश के रूप में संदेश ।

वर्तमान में, इस कोड काम नहीं करता है । मैं के माध्यम से देखा है प्रलेखन लेकिन मैं प्रतीत नहीं कर सकते करने के लिए बाहर आंकड़ा कैसे बनाने के लिए इस कस्टम सत्यापनकर्ता + त्रुटि संदेश को ठीक से काम के बाद से यह कॉल एक अतुल्यकालिक समारोह. किसी भी मदद के लिए किया जाएगा 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 करने के लिए और डेटा को मान्य किया जा रहा के बीच भेजे गए क्लाइंट और सर्वर । आदेश में इस संभाल करने के लिए है कि एक तरह से स्केलेबल मैं सुझा होगा एक फ़ाइल का उपयोग संभाल करने के लिए अपनी साइटों के सभी पोस्ट अनुरोध (जैसे कुछ routes.js उदाहरण के लिए).

यहाँ एक नमूना कस्टम रूटर प्रदर्शित करता है कि एक त्रुटि संदेश यदि मान्यता विफल रहता है :

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

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में