当前位置: 首页 > 后端技术 > Node.js

使用TypeScript开发HapiJS应用

时间:2023-04-04 00:50:00 Node.js

初始化npm项目yarninitadddependenciesyarnaddhapiadddevelopmentdependencies要在开发中使用TypeScript,至少需要一个能够时刻监控项目文件变化并实时更新的工具在启动服务,我选择使用Nodemon,首先添加如下开发依赖yarnaddtypescript-Dyarnaddnodemon-D接下来,我们需要安装node和hapi的类型定义库:yarnadd@types/node-Dyarnadd@types/hapi-D安装完成后,package.json文件如下所示:{"name":"hapiserver","version":"0.0.1","description":"APIserver","main":"index.js","author":"你的名字","license":"MIT","dependencies":{"hapi":"^18.1.0"},"devDependencies":{"@types/hapi":"^18.0.2","@types/node":"^12.0.2","nodemon":"^1.19.0","typescript":"^3.4.5"}}注:在你的dependencies和devDependencies配置,版本号可能和我的不一样。配置TypeScript设计项目文件目录结构在项目根目录下,创建一个名为src的目录,用于存放系统所有的源代码文件,然后创建一个名为dist的目录,用于保存typescriptjavascript文件编译后的文件。注意:文件结构不是强制性的,您可以按照自己的习惯和规范。├──dist├──node_modules├──package.json├──src└──yarn.locktsconfig.jsonTypeScript会查询name为tsconfig.json的配置文件找到项目的入口文件和编译设置。其详细说明可以参考https://www.typescriptlang.org/docs/handbook/tsconfig-json.html,这里,我们先填写以下内容:{"compilerOptions":{"outDir":"./dist","allowJs":false,"target":"es6","sourceMap":true,"module":"commonjs","moduleResolution":"node"},"include":["./src/**/*"],"exclude":["node_modules"]}在tsconfig.json文件中,我们定义outDir的值为./dist,它告诉编译器编译后的输出目录是./dist文件夹。现在可以直接在项目根目录下执行如下代码,将src目录下的TypeScript代码编译成dist目录下的JavaScript文件。.node_modules/typescript/bin/tsc使用TypeScript开发Hapi服务应用在src目录下创建server.ts文件,内容如下:import*ashapifrom"hapi";//创建服务器并监听`localhost``8000`在商品常量服务器上:hapi.Server=newhapi.Server({host:"localhost",port:8000});//添加路由server.route({method:"GET",path:"/hello",handler:function(request,h){return"Hello!TypeScript!";}});//启动服务异步函数开始(){尝试{等待服务器。开始();}catch(err){console.log(err);进程.exit(1);}console.log("Serverrunningat:",server.info.uri);}//不要忘记启动服务start();由于我们的代码是用TypeScript写的,所以没办法直接运行,需要先编译成JavaScript代码再运行:使用如下命令编译代码:node_modules/typescript/bin/tsc编译后,你会得到以下两个文件:dist├──server.js└──server.js.map此时,执行以下代码启动服务:nodedist/server.js启动成功,终端会显示:服务器运行在:http://localhost:8000使用curl测试我们的服务:$curl-ihttp://localhost:8000/helloHTTP/1.1200OKcontent-type:text/html;charset=utf-8cache-control:no-cachecontent-length:18accept-ranges:bytesDate:Fri,17May201901:58:50GMTConnection:keep-alive你好!打字稿!已成功启动,所有配置均已完成。我们总不能每次改代码都手动执行一次编译,然后重启服务吧。您可以在package.json中添加两个命令:{..."scripts":{"start":"./node_modules/nodemon/bin/nodemon.js-ets--exec\"yarnruncompile\"","compile":"tsc&&node./dist/server.js"},...}现在,你只需要在项目根目录下执行以下代码,就可以启动一个实时自动编译代码的开发环境重启服务现在:yarnstart它的作用是:nodemon启动一个服务,监听文件变化,当有文件变化时,执行yarnrun编译命令(即执行:tsc&&node./dist/server.js重启服务。