Hapi+MySql项目实战配置插件-加载文件渲染母版(三)
加载插件
一般在其它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项目实战配置插件-加载文件渲染母版(三)的更多相关文章
- vs2015 项目调试出现未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
今天在调试项目不知道怎么了,突然就报未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项.找到的程序集清单定义与程序集引用不匹配. (异常来自 HRESULT:0x80131040) ...
- .net framework 项目 build 出现 未能加载文件或程序集“netfx.force.conflicts”或它的某一个依赖项
问题描述 Severity Code Description Project File Line Suppression State Error 未能加载文件或程序集"netfx.force ...
- Hapi+MySql项目实战环境初始化(一)
因为项目要求特殊的原因,公司要求使用Nodejs+HApi(纯英文的API)+Mysql构建新的项目.网上找了一堆资料,看了半天一脸懵逼.结论就是:版本的差异,资料国内几乎都是旧的17年前的了.根据资 ...
- Hapi+MySql项目实战自动化文档生成(四)
自动化生成swagger文档 使用hapi插件hapi-swagger,简单配置下插件,先修改下plugin_config.js文件: //plugin_config.js const Swagger ...
- Hapi+MySql项目实战数据库操作(四)
数据库访问 下面以Node的ORM框架Sequelize来操作数据库,Mysql为例. 配置数据库连接信息config/db_config.js: //db_config.js module.expo ...
- Hapi+MySql项目实战路由初始化(二)
配置路由规则 将路由文件放在routes文件夹里,修改‘Server.js’文件,增加如下代码: 我们这里指明了require('./routes') routes文件夹,require可以文件但是不 ...
- 未能加载文件或程序集 Version Culture=neutral, PublicKeyToken=
最近项目报错 未能加载文件或程序集"Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, ...
- 未能加载文件或程序集 MySql.Web
偶然间碰到这个错误,找到一个临时的解决办法,真正的原因还不知道是什么,也不知道这种解决方法会不会对以后有什么副作用. “/”应用程序中的服务器错误. 配置错误 说明: 在处理向该请求提供服务所需的配置 ...
- 目标平台、活动平台 配置,出现未能加载文件或程序集“xxx”或它的某一个依赖项报错
今天在做动态加载程序集的时候,发现明明程序集存在的情况下,还是依然报“未能加载文件或程序集“xxx”或它的某一个依赖项报错”的错误,排除了程序和配置的错误后,怀疑是否是环境的问题,于是百度加msdn后 ...
随机推荐
- JVM系列七(JIT 即时编译器).
一.概述 即时编译器(Just In Time Compiler),也称为 JIT 编译器,它的主要工作是把热点代码编译成与本地平台相关的机器码,并进行各种层次的优化,从而提高代码执行的效率. 那么什 ...
- Beetlex实现完整的HTTP协议
在传统网络服务中扩展中需要处理Bytes来进行协议的读写,这种原始的处理方式让工作变得相当繁琐复杂,出错和调试的工作量都非常大:组件为了解决这一问题引用Stream读写方式,这种方式可以极大的简化网络 ...
- Microsoft Visual Studio提示正忙如何解决
打开项目的时候会一直提示正在加载,然后卡死,点击VS界面即出现下如图- 如图: 解决方法: 1.打开项目 找到一个叫vs的文件夹, 2.找到一个后缀是.suo的文件 把它删掉 3.关闭VS进程 重新打 ...
- java类中元素初始化顺序
结论:对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是(静态变量.静态初始化块)>(变量.初始化块)>构造器. public class Test4 { @Tes ...
- Nginx安装目录讲解
查看nginx相关目录 rpm -ql nginx 查看到如下目录 /etc/logrotate.d/nginx 配置文件 作用:nginx日志轮转,用于logrotate(轮替)服务的日志切割 /e ...
- 20190918Java课堂记录
1. EnumTest.java public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; ...
- LeetCode 第15题-三数之和
1. 题目 2.题目分析与思路 3.思路 1. 题目 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且 ...
- git 工作实用创建删除分支
一.创建分支 .创建本地分支并切换 git checkout -b dev_wt2 .创建切换并关联远程分支 git checkout -b dev_wt3 orgin/dev_wt3 .创建远程分支 ...
- Manipulating Data from Oracle Object Storage to ADW with Oracle Data Integrator (ODI)
0. Introduction and Prerequisites This article presents an overview on how to use Oracle Data Integr ...
- Identity 4 -1创建一个登录中心
准备知识 官网地址:https://identityserver4.readthedocs.io/ 通过nuget安装 Identity Server4