zoukankan      html  css  js  c++  java
  • Hapi+MySql项目实战配置插件加载文件渲染母版(三)

    • 加载插件

    一般在其它node框架下,我们安装好插件直接require('插件')就能正常使用了,但是在Hapi下我们必须要Server.register()方法,才能正常使用插件。举个例子:

    1 server.register({
    2     plugin: require('vision'),
    3     options: {
    4     }
    5 });

      为什么使用register()? 根据官方文档的描述,通俗解释应该是为惰性加载,只在程序启动时引用注册一次。

      除了部分特殊的引用其他的插件我们依旧可以使用require('插件')引入插件,并不是所有插件都需要register()。

    • 写入插件配置文件config/plugin_config.js后统一register(),代码如下:
    //plugin_config.js
    module.exports = [
        {
            plugin: require('inert'),
            options: {
            }
        },
        {
            plugin: require('hapi-swagger'),
            options:{
         } }, { plugin: require(
    'vision'), options: { } } ];
    • 在‘server.js’中注册插件信息
    //server.js
    const Plugins = require('./config/plugin_config');
    await Server.register(Plugins);

             

    • 静态文件的加载

    上面我们项目已经安装好了inert,这里我们就是用Inert来处理静态文件

    在routes文件夹下,新增staticfile.js,代码如下:

    //staticfile.js
    let static = {
        method: 'GET',
        path: '/staticFile',
        handler: function (request, reply) {
            return reply.file('./public/static.html');
        }
    };
    
    module.exports = static;

      static.html随便输入内容。

           

      记得注册路由,routes/index.js新增如下代码:

    //module.exports = [
        //require(__dirname + '/hello.js'),
        require(__dirname + '/staticfile.js')
    //];

      重新启动服务

      输入地址:http://localhost:8090/staticFile

      输出:静态文件static.html

    • 使用vision渲染母版

    在server.js文件下server.views配置默认的母版视图:

    1 //server.js
    2 Server.views({
    3  engines: {
    4    html: require('handlebars')
    5  },
    6  relativeTo: __dirname,
    7   path: './public/templates'
    8});

      渲染视图,在staticfile.js 新增路由:

      

    //staticfile.js
    let view = {
        method: 'GET',
        path: '/view',
        handler: function (request, reply) {
            return reply.view('login', { title: 'My home page',content: 'Hello Hapi!!!' });
        }
    };
    
    module.exports = [static, view];

      login视图的内容将自动填充

  • 相关阅读:
    mysql的多表查询join
    JMeter源码集成到Eclipse
    jmeter关联 正则表达式提取器
    JMeter结果树响应数据中文乱码解决办法
    BZOJ 2080: [Poi2010]Railway 双栈排序
    BZOJ 4384: [POI2015]Trzy wieże
    BZOJ 4325: NOIP2015 斗地主
    BZOJ 1142: [POI2009]Tab
    第10章 内核同步方法
    第1章 Linux内核简介
  • 原文地址:https://www.cnblogs.com/wzgj/p/8866864.html
Copyright © 2011-2022 走看看