CNode

Eggjs - Controller里面的方法需不需要return

问答
Ffayeah发布于5 年前最后回复5 年前6 回复3357 浏览0 收藏

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)

H
hsiaosiyuan0#1·5 年前

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

C
chenkai0520#2·5 年前

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

D
dingyuanwu#3·5 年前

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

G
g8up#4·5 年前

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

Z
zhaochen441#5·5 年前

21

I
i5ting#6·5 年前

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

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