【问题标题】:TypeError: server.views is not a function in hapi.jsTypeError: server.views 不是 hapi.js 中的函数
【发布时间】:2016-09-16 08:03:00
【问题描述】:

我是 node.js 的初学者,我正在为我的 Web 应用程序使用 hapi 框架。在那我使用车把作为模板。当我配置服务器视图时,我收到类型错误。

    '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

我正在使用 hapi 15.0.3。谢谢

【问题讨论】:

    标签: javascript node.js hapijs


    【解决方案1】:

    要使用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 });
    });
    

    【讨论】:

    • 感谢休戴维斯。有用。我在这里看到了futurestud.io/tutorials/… 的教程。但在这方面,他们从未使用过视觉插件。同样在其他一些教程上,我也检查过他们从未使用过它。它基于hapi版本?
    • 我不太明白你所说的“基于 hapi 版本”是什么意思? @Sivabalan
    • 要在 hapi 15.0.3 中使用 server.views() 我们应该包括视觉吗?
    • 是的,在任何需要视觉的情况下使用 server.views。它不包含在 hapi npm 模块中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-29
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2021-06-05
    • 2012-08-28
    相关资源
    最近更新 更多