当我使用reply.create()时,为什么heroku上的hapi.js会导致传输错误

时间:2015-09-03 14:19:15

标签: heroku hapijs

当我尝试在我的应用中发送201响应时,我遇到以下错误。它在我的本地机器上运行良好。

代码

reply({msg: 'foo'}).created();

奇怪的是,如果我向创建的方法添加一个参数,它就不会在Heroku中抛出错误。导致问题的环境有何不同?

错误:

Debug: internal, implementation, error 
Error: "name" and "value" are required for setHeader().
     at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.
     at Object.internals.transmit (/app/node_modules/hapi/lib/transmit.
     at /app/node_modules/hapi/lib/transmit.js:34:26
     at Function.internals.Auth.response (/app/node_modules/hapi/lib/auth.
     at /app/node_modules/hapi/lib/transmit.js:139:25
     at internals.Response._streamify (/app/node_modules/hapi/lib/response
     at internals.Response._marshal (/app/node_modules/hapi/lib/response.
     at /app/node_modules/hapi/lib/transmit.js:535:20
     at /app/node_modules/hapi/lib/transmit.js:119:18
     at Object.exports.parallel (/app/node_modules/hapi/node_modules/items/lib/index.js:47:9)

1 个答案:

答案 0 :(得分:0)

.created函数需要uri参数,以便在设置响应Location标头时,它具有值。尝试将字符串传入created,应该解决您的问题。在堆栈中向下,有一个setHeader调用“Location”但你没有提供值,因此错误。