CNode

express 如何在其他函数中终止本次请求,并且向客户端返回数据,详细如下。

问答
RRajanZhan发布于8 年前最后回复8 年前4 回复3982 浏览0 收藏

使用的是express 框架

express 的路由如下

myRouter.js

router.get("/",(req,res)=>{ let stop = require("stop.js"); stop(res); // 在这里就终止了本次执行请求

res.end("结束了"); // 这里不会被调用 })

==================分割线=============================== stop.js

module.export = (res)=>{

}

========================分割线==================================

我希望的结果是 在stop函数中执行完后,直接就终止了本次执行, 无需添加任何代码来终止。 请问如何写stop.js 中的代码??????

查看回复

回复 (4)

Y
yinxin630#1·8 年前

我是调用 assert() 判断业务逻辑并抛异常, 然后有中间件捕获异常, 向客户端返回错误消息

Y
yinxin630#2·8 年前

自己搞的土办法, 不知道正式工程中有什么更好的解决方案吗?

N
noe132#3·8 年前

不应该这样操作。 如果在中间需要停止执行,应该由中间的方法返回一个状态或者抛出一个异常,在外面捕获处理。 你这个stop如果逻辑复杂了,代码逻辑会非常不清晰。

P
polunzh#4·8 年前

return stop(res);

参与回复
登录后即可参与回复。登录