Eggjs - Controller里面的方法需不需要return
发布于 3 年前 作者 fayeah 2092 次浏览 来自 问答

nodejs新手,刚启动一个node服务,在本地完全没问题,但是部署到生产环节,node服务就没办法调用外部的三方服务,哪怕是像https://registry.npm.taobao.org/egg/latest等公开的API。

也不是说一开始就调用不通,而是可以正常使用一段时间(几分钟)后,就无法访问外部的服务,然而node本身的API是可以调用的,也就是node服务运行正常,只是不能调用外部的服务。

之前的代码,每个controller内部的方法,都没有加return:

asyc method1(...) {
...
ctx.body = xxx
}

后来添加了return :

asyc method1(...) {
...
ctx.body = xxx
return xxx
}

半个小时过去了,目测还没出现问题。

所以,我的问题是,conroller的每个方法要添加return吗?为啥?

6 回复

具体要看其他中间件是否需要 action 方法的返回值

其他中间件可以通过await next()拿到上一个中间件的返回值

egg的一般不需要手动返回数据,看你有没有其他的中间件需要使用返回的数据

听起来”node 不能调用外部服务“像是你的主机出口流量限制了。到网络安全组里查看一些出口流量策略,放行。

看koa中间件和ctx.body实现就懂了,并不需要return

回到顶部