gpt4 book ai didi

node.js - JSON 响应并在 Express 中调用 next()

转载 作者:搜寻专家 更新时间:2023-10-31 23:35:17 24 4
gpt4 key购买 nike

是否可以使用 Express 4 向前端发送 JSON 响应以指示出现错误,并在 Express 中间件中调用 next(err),以便错误可以由服务器也是?或者这些调用完全互斥?

我目前的假设是您可以这样做:

app.get('/', function(req, res, next) {
res.json({ error : true });
});

你可以这样做:

app.get('/', function(req, res, next) {
next(new Error('here goes the error message');
});

但是你不能这样做

app.get('/', function(req, res, next) {
res.json({ error : true });
next(new Error('here goes the error message');
});

你不能这样做:

app.get('/', function(req, res, next) {
next(new Error('here goes the error message');
res.json({ error : true });
});

最佳答案

它们并不相互排斥。例如(我使用路由处理程序来演示而不是中间件,但两者的原理是相同的):

app.get('/', function(req, res, next) {
res.json({ error : true });
next(new Error('something happened'));
});

app.get('/another', function(req, res, next) {
next(new Error('something happened'));
});

app.use(function(err, req, res, next) {
console.error(err);
if (! res.headersSent) {
res.send(500);
}
});

您可以检查错误处理程序中的 res.headersSent 以确保已发送响应(如果没有,错误处理程序应自行发送)。

关于node.js - JSON 响应并在 Express 中调用 next(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31080706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com