小编Jos*_*ery的帖子

如何处理错误然后立即脱离承诺链?

所以我有一个 Express 应用程序,它使用中间件来解析 JSON POST 请求,然后填充一个req.body对象。然后我有一个承诺链,它使用 Joi 根据模式验证数据,然后将其存储在数据库中。

我想做的是检查这些进程之一之后是否抛出错误,通过发送状态代码进行适当处理,然后完全中止承诺链。我觉得应该有一些非常干净和简单的方法来做到这一点,(也许是某种中断语句?)但我在任何地方都找不到它。这是我的代码。我留下了评论,表明我希望在哪里中止承诺链。

const joi = require("joi");

const createUserSchema = joi.object().keys({
    username: joi.string().alphanum().min(4).max(30).required(),
    password: joi.string().alphanum().min(2).max(30).required(),
});

//Here begins my promise chain 
app.post("/createUser", (req, res) => {
    //validate javascript object against the createUserSchema before storing in database
    createUserSchema.validate(req.body)
        .catch(validationError => {
           res.sendStatus(400);

           //CLEANLY ABORT the promise chain here

           })
        .then(validatedUser => {
            //accepts a hash of inputs and stores it in a database 
            return createUser({
                    username: validatedUser.username,
                    password: validatedUser.password
                })
        .catch(error => { …
Run Code Online (Sandbox Code Playgroud)

javascript node.js promise express

5
推荐指数
1
解决办法
1354
查看次数

如何在单元测试中使用 jest 测试 bootstrap vue 组件的存在?

所以我有一些包含b-form-input组件的代码,我正在测试该组件是否呈现。我正在使用wrapper.find({name: "b-form-input"}).exists()来确定该 bootstrap vue 组件是否存在。但是,当我知道组件正在渲染时,此函数会不断返回 false。我可以就如何正确执行此操作提供一些帮助吗?

vue.js jestjs vue-component vuejs2 bootstrap-vue

2
推荐指数
1
解决办法
1908
查看次数