本文作者:问几许

使用 Hapi 开发 APIs(一)

问几许 3年前 ( 2019-11-21 ) 2428 抢沙发
使用 Hapi 开发 APIs(一)摘要: 初始化项目1、初始化nodenpm init2、安装Hapinpm i hapi3、创建入口文件在项目根目录下创建一个入口js文件,app.js。(文...


初始化项目

1、初始化node

npm init


2、安装Hapi

npm i hapi


3、创建入口文件

在项目根目录下创建一个入口js文件,app.js。(文件名可根据个人爱好命名)


4、开启服务

// app.js
const Hapi = require('hapi');

const server = Hapi.server({
  port: 3000,
  host: 'localhost'
});

server.route({
  method: 'GET',
  path: '/',
  handler: (request, h) => {
    return 'Hello, Hapi!!!!!!!';
  }
});

server.route({
  method: 'GET',
  path: '/api/welcome',
  handler() {
    return {
      code: 200,
      success: true,
      data: {
        msg: 'welcome'
      }
    }
  }
});

const init = async () => {
  await server.start();
  console.log(`Server running at: ${server.info.uri}`);
};

process.on('unhandledRejection', (err) => {
  console.log(err);
  process.exit(1);
});

init();


5、启动服务

在终端输入:

node app.js


6、验证 hapi 服务

打开浏览器,访问 http://127.0.0.1:3000 我们将看到浏览器中看到

Hello, Hapi!!!!!!!

的字样。


使用插件(日志、热更新)

1、通过 hapi pino 插件为应用提供日志服务。

npm i hapi-pino

修改 app.js 文件如下:

const init = async () => {

    await server.register({
        plugin: require('hapi-pino'),
        options: {
            prettyPrint: false,
            logEvents: ['response', 'onPostStart']
        }
    });

    await server.start();
    console.log(`Server running at: ${server.info.uri}`);
};

然后再次启动服务就会看到如下信息:

{"level":30,"time":1574304598640,"pid":77448,"hostname":"OS-20190120JBDD",
"created":1574304598544,"started":1574304598612,"host":"localhost","port":3000,
"protocol":"http","id":"OS-20190120JBDD:77448:k384b6kw","uri":"http://localhost:3000",
"address":"127.0.0.1","msg":"server started","v":1}
Server running at: http://localhost:3000


2、代码热更新

安装:

npm i nodemon

启动:

nodemon app.js

为了方便,我配置到 package.json 中:

// package.json
"scripts": {
    "dev": "node app.js",
    "watch": "nodemon app.js"
},

然后我们再次启动:

npm run watch

就会看到:

> nodemon app.js

[nodemon] 1.19.4
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node index.js`

等字眼,那说明我们启动成功了,然后我们每次修改完代码,刷新一下浏览器就可以了,不需要关闭再次启动。

文章版权及转载声明

作者:问几许本文地址:https://wenjixu.com/blog/137.html发布于 3年前 ( 2019-11-21 )
文章转载或复制请以超链接形式并注明出处问几许

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,2428人围观)参与讨论

还没有评论,来说两句吧...