• 加载插件

一般在其它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视图的内容将自动填充

最新文章

  1. 支持高并发的IIS Web服务器常用设置 II
  2. 深入理解Java内存模型(七)——总结
  3. win7虚拟机起不来,报错transport vmdb error -44 message the vmware authorization
  4. zepto的touch.js左右滑动存在一些问题,用百度的touch.js代替
  5. Vxlan 原理
  6. jqgird 实践
  7. cocos2d-x 不规则形状按钮的点击判定
  8. 详解Linux2.6内核中基于platform机制的驱动模型 (经典)
  9. html5 兼容版本 video
  10. MyBatis 中一对一和一对多的映射关系
  11. laravel框架——验证码(第二种方法)
  12. Android 音视频深入 二十一 FFmpeg视频剪切
  13. ng-model-options 时延
  14. Linux关于文件,文件夹操作命令
  15. QMQ去哪儿网-mq中间件(启动失败)
  16. oracle提高查询效率的34条方法
  17. C#断点续传下载。
  18. zabbix agent安装(三)
  19. 【转】Android:No implementation found for native
  20. re 模块错误 error: bad character range

热门文章

  1. 详解定时任务中的 cron 表达式
  2. Vue CLI及其vue.config.js(一)
  3. 洛谷 P2746 [USACO5.3]校园网Network of Schools schlnet Tarjan强连通分量
  4. java面试题-集合类
  5. spring注入相关注解
  6. 鉴于崔庆才大大的对于 beautifulsoup 的再理解
  7. [bzoj4571] [loj#2016] [Scoi2016] 美味
  8. Mac系统 python2.7中安装MySQLdb
  9. AVLTree(C++实现)没有统一旋转操作
  10. ios启动流程