hapijs自定义http状态消息

时间:2017-07-28 16:05:26

标签: javascript node.js hapijs

我需要在hapijs应用程序中设置自定义HTTP状态消息。怎么做到这一点?我的代码是:

'use strict';

const Hapi = require('hapi');

const server = new Hapi.Server();
server.connection({ port: 3000, host: 'localhost' });

server.route({
    method: 'GET',
    path: '/',
    handler: function (request, reply) {
        reply('Hello, world!\n')
        .header('set-cookie', 'abc=123')
        .message("Hello world");
    }
});

server.start((err) => {
    if (err) {
        throw err;
    }
    console.log(`Server running at: ${server.info.uri}`);
});

当我通过卷曲这样称呼它时: curl -v http://localhost:3000/我看到了自定义的http标头abc=123,但http状态消息仍然是OK而不是预期的Hello world。请帮忙。 感谢。

1 个答案:

答案 0 :(得分:2)

这是一个错误,并且有一个开放的pull request来修复它。 我可以确认我能够使用Hapi 16.5(来自主人)重现您的问题,并且在应用拉取请求后它可以正常工作。

如果您现在需要它并且不能等待拉取请求被接受,您可以按照我测试它的步骤进行操作:

$ rm -r node_modules/hapi
$ git clone https://github.com/hapijs/hapi.git node_modules/hapi

然后修改node_modules/hapi/.git/config,以便[remote "origin"]块看起来如下:

[remote "origin"]
url = https://github.com/hapijs/hapi.git
fetch = +refs/heads/*:refs/remotes/origin/*
fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

(添加第三行)

$ cd node_modules/hapi
$ git fetch origin
$ git checkout pr/3560
// optional if you don't want a nested git repo in your project
$ rm -r .git

现在您的自定义状态消息应该有效:)