首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hapi -使用HTML回复

Hapi -使用HTML回复
EN

Stack Overflow用户
提问于 2015-09-09 06:38:15
回答 3查看 4.8K关注 0票数 4

我是Hapi和Javascript的新手,我正在尝试在浏览器中显示一个页面。我有一个main.html文件,我希望在进入第一个页面时立即显示该文件,但使用如下代码时,我总是收到错误消息

代码语言:javascript
复制
"{"statusCode":500,"error":"Internal Server Error","message":"An internal server error occurred"}"

如何显示html文件?

js文件:

代码语言:javascript
复制
var Hapi = require('hapi');

var server = new Hapi.Server();
server.connection({ port: 3000 });


server.route({
    method: 'GET',
    path: '/',
    handler: function (request, reply) {
        reply.view('main.html');
    }
});

server.route({
    method: 'GET',
    path: '/{name}',
    handler: function (request, reply) {
        reply('Hello, ' + encodeURIComponent(request.params.name) + '!');
    }
});

server.start(function () {
    console.log('Server running at:', server.info.uri);
});
EN

回答 3

Stack Overflow用户

发布于 2015-09-09 06:53:16

您是否为服务器设置了视图配置?在docs中,他们说你需要一个视图引擎(比如handlebars / swig)。

如果没有,也许您可以尝试使用绝对路径提供文件

代码语言:javascript
复制
var path = require('path');

server.route({
    method: 'GET',
    path: '/',
    handler: function (request, reply) {
        reply.file(path.join(__dirname, '../../../path/to/main.html'));
    }
});
票数 2
EN

Stack Overflow用户

发布于 2015-09-11 06:07:16

如果你使用的是hapi 9.x.x,你需要加载视觉插件才能使用reply.view方法。请参阅此处的文档https://github.com/hapijs/vision

票数 0
EN

Stack Overflow用户

发布于 2017-02-02 17:08:08

hapi 9.0.0和更高版本需要vision来支持模板呈现。通过vision,您可以使用允许发送reply响应的view方法来装饰HTML界面:

您的设置如下所示:

代码语言:javascript
复制
var Hapi = require('hapi')  
var Vision = require('vision')  
var Handlebars = require('handlebars')

// create new server instance
var server = new Hapi.Server()

// register vision to your server instance
server.register(Vision, function (err) {  
  if (err) {…}

  // configure template support   
  server.views({ // config here 
  })
})

然后你可以像这样回复HTML:

代码语言:javascript
复制
server.route({  
  method: 'GET',
  path: '/',
  handler: function (request, reply) {
    var data = { message: 'Hello from Future Studio' }
    reply.view('index', data)
  }
})

您也可以按照本教程进行操作:

https://futurestud.io/tutorials/hapi-how-to-render-views

希望这能有所帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32468351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档