2016-09-13 10 views
0

Я начинаю на node.js Я использую hapi framework для своего веб-приложения. В том, что я использую handlebars для шаблона. Когда я настраиваю представления сервера, я получаю ошибку типа.TypeError: server.views не является функцией в hapi.js

'use strict'; 

    const hapi = require('hapi'); 
    const server = new hapi.Server(); 
    const inert = new require('inert'); 

    server.connection({ 
     host: '127.0.0.1', 
     port: 8080, 
    }); 

    //Starting server 
    server.start((error) => { 
     if(error){ 
      throw error; 
     } 
     console.log("Server running" + server); 
    }); 

    server.register(inert,() => { 
     console.log("hhh"); 
     server.views({ 
      engines: { 
       html: require('handlebars') 
      }, 
      path: 'views', 
      layoutPath: 'views/layout', 
      layout: 'default', 
      partialsPath: 'views/partials' 
      //helpersPath: 'views/helpers', 
     }); 
    }); 

Я получаю эту ошибку:

TypeError: server.views is not a function 
at server.register (/home/developer/Workspace/kravein-test/app/backend/server.js:22:9) 
at process.nextTick (/home/developer/Workspace/kravein-test/node_modules/hoek/lib/index.js:854:22) 
at _combinedTickCallback (internal/process/next_tick.js:67:7) 
at process._tickCallback (internal/process/next_tick.js:98:9) 
at Module.runMain (module.js:577:11) 
at run (bootstrap_node.js:352:7) 
at startup (bootstrap_node.js:144:9) 
at bootstrap_node.js:467:3 

Я использую Хапи 15.0.3. Благодаря

ответ

2

Для использования server.views, вам нужно бы Vision plugin

например с ручками

const server = new Hapi.Server(); 
server.connection({ port: 8000 }); 

const handler = function (request, reply) { 

    reply.view('basic/index', { 
     title: 'examples/views/handlebars/basic.js | Hapi ' + request.server.version, 
     message: 'Hello World!' 
    }); 
}; 

server.register(require('vision'), (err) => { 

    if (err) { 
     throw err; 
    } 

    server.views({ 
     engines: { html: require('handlebars') }, 
     path: __dirname + '/templates' 
    }); 

    server.route({ method: 'GET', path: '/', handler: handler }); 
}); 
+0

Thanks Huw Davies. Оно работает. Я увидел учебник по https://futurestud.io/tutorials/how-to-create-a-dynamic-handlebars-layout-template-in-hapijs здесь. Но в этом они никогда не использовали плагин видения. Также в некоторых других учебниках также я проверил, что они никогда не использовали его. Его основано на версии hapi? – Sivabalan

+0

Я не совсем понимаю, что вы подразумеваете под «на основе версии хапи»? @Sivabalan –

+0

Использовать server.views() в hapi 15.0.3 следует ли включить видение? – Sivabalan