javascript - 如何在nodejsexpress中处理response和next

标签 javascript node.js http express response

我想知道我应该如何处理 express 中的回复和下一步。

我的理解是,当我说 res.send(...) -> 返回响应时

如果我想抛出一个错误,我会说 next(new Error('whatever')) -> 使用快速错误处理程序自动设置 http 状态代码。

我可以做到其中任何一个,但不能,但看起来我搞砸了。

谁能举个例子吗?

我试过了,

somefunc(err, req, res, next) {
    if(err) {
        res.send(500, 'some error');
        return next(err); 
    }
}

return [somefunc, express.errorHandler()];

谢谢。

最佳答案

你可以注册一些中间件来处理错误:

app.use(function(err, req, res, next){
  console.error(err.stack);
  res.send(500, 'Something broke!');
});

如果您遇到逻辑错误,您也可以简单地发送 500 并进行回复

function loginUser(req, res, next) {
    try {
        var valid;
        //code to check user
        if (valid) {
            next();
        } else {
            res.send(401, 'not authorized');
        }
    } catch (err) {
        res.send(500, 'Oopsy');
    }
}

app.get('/some/route',loginUser, function(req, res) {
  // ...
});

关于javascript - 如何在nodejsexpress中处理response和next,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521450/

相关文章:

http - REST API 中 "active"资源的概念

python - 如何使用 python (requests/urllib3) 登录 facebook?

http - Golang 从内存中提供静态文件

javascript - Mustache JS 和合并模板

javascript - q then 与 2 个函数和 then 后跟 catch 之间的区别

node.js - 从 jenkins 运行时出现 NPM 问题

javascript - 在 NextJS 路由中的 slug 前面添加符号(例如@)

node.js - NodeJS API 通过 ID 获取。如何检测未找到的项目?

javascript - 在 Angular 6 中调用函数并将其传递给 *ngIf

javascript - 取消静音背景视频的按钮