Javascript Hapi-用HTML回复

Javascript Hapi-用HTML回复,javascript,node.js,hapijs,Javascript,Node.js,Hapijs,我不熟悉Hapi和Javascript,我正在尝试在浏览器中显示一个页面。我有一个main.html文件,我希望在进入第一页时立即显示该文件,但如果代码像这样,我总是会出错 "{"statusCode":500,"error":"Internal Server Error","message":"An internal server error occurred"}" 如何显示html文件 js文件: var Hapi = require('hapi'); var server = new

我不熟悉Hapi和Javascript,我正在尝试在浏览器中显示一个页面。我有一个main.html文件,我希望在进入第一页时立即显示该文件,但如果代码像这样,我总是会出错

"{"statusCode":500,"error":"Internal Server Error","message":"An internal server error occurred"}"
如何显示html文件

js文件:

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);
});

您为服务器设置了视图配置了吗?在游戏中,他们说你需要一个视图引擎(比如把手/开关)

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

var path = require('path');

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

如果您使用的是hapi 9.x.x,您需要加载vision插件才能使用reply.view方法。请看这里的文档

hapi
9.0.0
及更高版本需要模板呈现支持。使用vision,您可以使用允许您发送HTML响应的
视图
方法装饰
回复
界面:

您的设置如下所示:

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 
  })
})
server.route({  
  method: 'GET',
  path: '/',
  handler: function (request, reply) {
    var data = { message: 'Hello from Future Studio' }
    reply.view('index', data)
  }
})
然后您可以这样回复HTML:

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 
  })
})
server.route({  
  method: 'GET',
  path: '/',
  handler: function (request, reply) {
    var data = { message: 'Hello from Future Studio' }
    reply.view('index', data)
  }
})
您还可以按照本教程进行操作:

希望有帮助