• 加载插件

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

 server.register({
plugin: require('vision'),
options: {
}
});

  为什么使用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配置默认的母版视图:

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

  渲染视图,在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视图的内容将自动填充

Hapi+MySql项目实战配置插件-加载文件渲染母版(三)的更多相关文章

  1. vs2015 项目调试出现未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

    今天在调试项目不知道怎么了,突然就报未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配. (异常来自 HRESULT:0x80131040) ...

  2. .net framework 项目 build 出现 未能加载文件或程序集“netfx.force.conflicts”或它的某一个依赖项

    问题描述 Severity Code Description Project File Line Suppression State Error 未能加载文件或程序集"netfx.force ...

  3. Hapi+MySql项目实战环境初始化(一)

    因为项目要求特殊的原因,公司要求使用Nodejs+HApi(纯英文的API)+Mysql构建新的项目.网上找了一堆资料,看了半天一脸懵逼.结论就是:版本的差异,资料国内几乎都是旧的17年前的了.根据资 ...

  4. Hapi+MySql项目实战自动化文档生成(四)

    自动化生成swagger文档 使用hapi插件hapi-swagger,简单配置下插件,先修改下plugin_config.js文件: //plugin_config.js const Swagger ...

  5. Hapi+MySql项目实战数据库操作(四)

    数据库访问 下面以Node的ORM框架Sequelize来操作数据库,Mysql为例. 配置数据库连接信息config/db_config.js: //db_config.js module.expo ...

  6. Hapi+MySql项目实战路由初始化(二)

    配置路由规则 将路由文件放在routes文件夹里,修改‘Server.js’文件,增加如下代码: 我们这里指明了require('./routes') routes文件夹,require可以文件但是不 ...

  7. 未能加载文件或程序集 Version Culture=neutral, PublicKeyToken=

    最近项目报错 未能加载文件或程序集"Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, ...

  8. 未能加载文件或程序集 MySql.Web

    偶然间碰到这个错误,找到一个临时的解决办法,真正的原因还不知道是什么,也不知道这种解决方法会不会对以后有什么副作用. “/”应用程序中的服务器错误. 配置错误 说明: 在处理向该请求提供服务所需的配置 ...

  9. 目标平台、活动平台 配置,出现未能加载文件或程序集“xxx”或它的某一个依赖项报错

    今天在做动态加载程序集的时候,发现明明程序集存在的情况下,还是依然报“未能加载文件或程序集“xxx”或它的某一个依赖项报错”的错误,排除了程序和配置的错误后,怀疑是否是环境的问题,于是百度加msdn后 ...

随机推荐

  1. Java 基础(三)| IO流之使用 File 类的正确姿势

    为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java ...

  2. P2365 任务安排 batch 动态规划

    batch ★☆   输入文件:batch.in   输出文件:batch.out   简单对比时间限制:1 s   内存限制:128 MB 题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不 ...

  3. 解决a 标签 和 div 标签高度超出的问题

    当a,或div标签里面有内容时,有时候a 或div的高度会超出,此时可以设置a或div的font-size:0:

  4. windows服务搭建(VS2019创建Windows服务不显示安装组件)

    1.创建windows服务应用 2.右键查看代码 3.写个计时器Timer  using System.Timers; 如上图,按tab键快速操作  会自动创建一个委托 改为下边的方式,打印日志来记录 ...

  5. go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用)

    目录 go微服务框架kratos学习笔记四(kratos warden-quickstart warden-direct方式client调用) warden direct demo-server gr ...

  6. LeetCode10 Hard,带你实现字符串的正则匹配

    本文始发于个人公众号:TechFlow 这是LeetCode的第10题,题目关于字符串的正则匹配,我们先来看题目相关信息: Link Regular Expression Matching Diffi ...

  7. iOS的项目目录结构

    一.一般面试官都会问这样的一个问题,你怎样划分你项目的目录结构,就能测试出这个人是否有经验? 目前,比较常规的两种结构: 1.主目录按照业务分类,内目录按照模块分类(主目录按照MVC架构分类,内部根据 ...

  8. OAuth2.0的那点荒唐小秘密 -几个简单概念和原理

    OAuth2.0这个名词你是否在项目中时常听到呢?是否觉得好像懂,又好像不太懂呢? 最近一直想写篇关于OAuth2.0的东西,记录下我的学习与感悟,然各种理由的拖延,直到今日才静下心来写下这篇博客.当 ...

  9. map转URL

    package com.psm.util; import java.util.Map; public class MapSwitchUrl { public static String getUrlP ...

  10. 【5min+】帮我排个队,谢谢。await Task.Yield()

    系列介绍 [五分钟的dotnet]是一个利用您的碎片化时间来学习和丰富.net知识的博文系列.它所包含了.net体系中可能会涉及到的方方面面,比如C#的小细节,AspnetCore,微服务中的.net ...