Express 链接多个响应以发送数据,然后重定向url
我是javascript新手,想知道我的代码是否可以接受:我正在使用toexpress来响应PUT请求。我的目标是将更新后的Sequelize模型作为响应发送回,然后将用户重定向回本地Express 链接多个响应以发送数据,然后重定向url,express,promise,sequelize.js,Express,Promise,Sequelize.js,我是javascript新手,想知道我的代码是否可以接受:我正在使用toexpress来响应PUT请求。我的目标是将更新后的Sequelize模型作为响应发送回,然后将用户重定向回本地/ 是否允许使用单独的返回语句链接两个.then()方法 我显示的代码在我的controller.js中的回调函数中 if(!errors.isEmpty()) { return res.status(404).json({ errors: errors.array() }); } else {
/
是否允许使用单独的返回语句链接两个.then()
方法
我显示的代码在我的controller.js
中的回调函数中
if(!errors.isEmpty()) {
return res.status(404).json({ errors: errors.array() });
} else {
Modules.find({
where: { id: req.params.id }
})
.then(Modules => {
return Modules.updateAttributes({
type: req.body.type,
course: req.body.course,
start: req.body.start,
end: req.body.end,
instructor: req.body.instructor
})
})
.then(updatedModule => {
return res.status(204).json(updatedModule);
})
.then(() => {
return res.redirect(301, "/");
})
.catch(() => {
return res.status(500).json({ errors: errors.array() });
});
}
因此,您希望将一些响应发送回用户,然后将其重定向回baseUrl。 但是很抱歉,这是不可能的,因为当您将res发送回客户端时,头也会随之发送,并且在使用
res.redirect
之后,它会给您一个错误
您可以在这里直接使用200状态代码重定向用户,如下所示
res.status(200)
res.redirect('/')
或
如果您使用XHR/AJAX发送请求,您可以直接基于状态代码编写重定向代码
res.redirect(200, '/')