当前位置: 首页 > news >正文

网站建设用模板深圳建设工程质量检测中心

网站建设用模板,深圳建设工程质量检测中心,好看的公司网站排版设计,wordpress客户koa ts kick off 使用ts开发koa项目的基本架子#xff0c;便于平时随手调研一些技术 项目结构 ├── src │ ├── controller //controller层 │ ├── service //service层 │ ├── routes.ts //路由 │ └── index.ts //项目入…koa ts kick off 使用ts开发koa项目的基本架子便于平时随手调研一些技术 项目结构 ├── src │ ├── controller //controller层 │ ├── service //service层 │ ├── routes.ts //路由 │ └── index.ts //项目入口index.js ├── ecosystem.config.js //pm2配置 ├── nodemon.json //nodemon配置 ├── package.json └── tsconfig.json // ts配置文件 项目构建步骤 初始化项目 npm init按需输入信息或者一直回车即可信息可以后面再package.json中补充 安装typescript相关依赖 npm i ts-node typescript --save-devts-node 可以在node中使用tstypescript ts的包 配置tsconfig 先初始化ts配置文件执行下面命令 npx tsc --init执行完上述命令后生成tsconfig.json配置文件。 该项目将tsconfig配置为下面内容 {include: [./src], // 指定需要编译文件 否则默认当前目录下除了exclude之外的所有.ts, .d.ts,.tsx 文件compilerOptions: {module: commonjs, // 指定生成哪个模块系统代码declaration: false,removeComments: true,emitDecoratorMetadata: true,experimentalDecorators: true,target: es6,sourceMap: false, // 用于debug outDir: ./dist, //重定向输出目录baseUrl: ./},exclude: [node_modules] // 不编译某些文件 }有关ts的详细内容推荐 ts学习好资料 关于tsconfig的完整参数文档 中文文档 英文文档 安装koa等基础功能包 npm i koa koa-router koa-body koa-parameter koa-static types/nodekoakoa功能包koa-routerkoa路由koa-body 解析post等请求中body参数koa-parameter: 校验请求中的基本参数koa-static: 静态文件服务types/node: 包含node包中大部分的定义 项目基本内容 安装项目结构分别建立各自文件夹这里使用一个controller 和一个service 入口文件 src/index.ts import * as Koa from koa; import * as path from path; import * as koaStatic from koa-static; import { koaBody } from koa-body; import * as parameter from koa-parameter; import globalExceptionHandler from ./middleware/exceptions; import router from ./router;// koa应用 const app new Koa(); // 注册中间件 // 全局捕获错误 app.use(globalExceptionHandler); // 静态文件服务 public 文件夹下文件可对外访问 app.use(koaStatic(path.join(__dirname, public))); // 解析body 参数 app.use(koaBody()); // 验证入参 app.use(parameter(app)); // 注册路由 app.use(router.routes()); // 如果请求了不被允许的方法 比如说只实现了 get 这时候请求了post 就会告诉客户端一些信息 app.use(router.allowedMethods()); app.listen(3009, () console.log(程序已经在3009端口启动));路由 src/router中内容用于应用中的路由注册 import * as Router from koa-router; import HelloController from ./controller/hello;const router new Router(); router.get(/hello, HelloController.hello); router.post(/sayHey, HelloController.sayHey);export default router;中间件 src/middleware/exceptions.ts 中间件用于全局兜底使用捕获异常 // global exception handler const globalExceptionHandler async (ctx, next) {try {await next();} catch (error) {ctx.body {errMsg: error.message,state: false};ctx.status 200; // http 响应码} };export default globalExceptionHandler;controller层 src/controller/hello.ts 一个简单的controller层 import HelloService from ../service//hello; class HelloController {private service: HelloService new HelloService();hello async ctx {const params ctx.request.query;console.log(接受到的参数为, name${params.name});ctx.body await this.service.hello();};sayHey async ctx {const params ctx.request.body;ctx.verifyParams({// 登录信息loginUrl: { type: string, required: true },});ctx.body 接受到的数据, name:${params.name} age: ${params.age};};} export default new HelloController(); service层 src/service/hello.ts 一个简单的service层 export default class HelloService {hello () {return hello koa ts world ~;}; }配置eslint 现在一般使用eslint来校验ts即可无需再使用tslint。两者基本重复tslint也不再维护了推荐使用eslint即可 安装eslint npm i eslint --save-dev初始化eslint配置文件 npx eslint --init执行上面命令后会有一些列的交互式问题按需选择即可。会自动下载对应的npm包并在本地生成.eslintrc.json配置文件 安装一个解析器一个将 TypeScript 转换为与 ESTree 兼容的形式的解析器 npm i typescript-eslint/parser配置.eslintrc.json 这里将其配置为如下内容 {root: true,parser: typescript-eslint/parser,plugins: [typescript-eslint],extends: [eslint:recommended,plugin:typescript-eslint/eslint-recommended,plugin:typescript-eslint/recommended],rules: { semi: [2, always],no-console: 1 // 如果有console会抛出错误} }eslintignore.json touch .eslintignore忽略不需要eslint校验的文件配置内容如下: node_modules dist ecosystem.config.jsnodemon 一个很不错的工具包可以监听本地文件服务的变化自动重启服务代替node命令 安装 npm i nodemon --save-dev配置文件 在根目录下新建nodemon.json文件修改内容如下 {watch: [src], // 监听src文件夹ext: ts, // 监听ts文件exec: ts-node src/index.ts, // 变化之后执行该命令ignore: [./src/public] // 忽略那些命令 }上述配置是监听src文件夹中 配置script脚本 在package.json文件中新增一个dev命令表开发时使用 dev: nodemon,当执行 npm run dev / yarn dev 时会根据nodemon.json配置文件执行命令 pm2 在生产环境使用pm2来守护应用进程 安装 npm i pm2 --save-dev配置文件 npx pm2 init执行上述命令生成pm2配置文件ecosystem.config.js, 将其修改为如下内容: // pm2 配置文件可运行 pm2 init生成该配置文件 const { name } require(./package.json); const path require(path);module.exports {apps: [// 数组中每一项都是运行在pm2中的一个应用{// pm2中应用程序的名称name,// 应用的入口文件script: path.resolve(__dirname, ./dist/index.js),// 该应用创建的实例可以根据服务器的cpu数量来设置实例以充分利用机器性能.仅在cluster模式有效默认为fork// instances: require(os).cpus().length,instances: 1,// 发生异常的情况下自动重启autorestart: true,// 是否启用监控模式默认是false。如果设置成true当应用程序变动时pm2会自动重载。这里也可以设置你要监控的文件watch: true,env_production: {NODE_ENV: production,PORT: 8080},}] };配置script命令 在package.json中我们配置如下脚本 scripts: {dev: nodemon, // 开发调式时使用dev:dist: nodemon dist/index.js, // 调试构建出的dist包build: rm -rf dist tsc, // 构建生产包cp: cp -r src/public dist/public, // tsc 只会讲src中ts文件编译成js到dist中public静态资源文件单独cp过去start: npm run build npm run cp npx pm2 start ecosystem.config.js --env production, // 生产环境运行restart: npx pm2 restart ecosystem.config.js --env production, //生产环境重启stop: npx pm2 stop ecosystem.config.js, // 停止生产环境应用进程delete: npx pm2 delete ecosystem.config.js, // 删除生产环境应用进程lint: eslint . --ext .ts, // eslint校验项目代码规范lint:fix: eslint . --ext .ts --fix, // eslint校验 修复项目代码规范test: echo \Error: no test specified\ exit 1},.gitignore 配置提交git时忽略的文件 node_modules dist运行 // 安装依赖 npm i// 开发调式 npm run dev// 生产 npm run start项目地址 github地址
http://www.ho-use.cn/article/10815715.html

相关文章:

  • 建筑企业登录哪个网站还有哪些平台能免费营销产品
  • 网站开发技术交流花灯彩灯制作公司
  • 乌海品牌网站建设做跨国婚恋网站赚钱吗
  • 网络教育网站如何做营销推广如何做类似优酷的视频网站
  • 入侵网站被判多少年app编辑软件
  • 东莞免费建站在线咨询电白区建设局网站
  • 广州平台网站建设杭州pc手机网站建设
  • 网站正在建设中界面设计做网站便宜
  • 一个人做网站 没有人写文章怎么办wordpress 自定义链接
  • 娄底企业网站建设公司东莞公司网站建设营销型网站建设
  • 做网站视频是什么专业为某网站做一则广告语
  • 商城网站开发企业珠海正规网站制作系统
  • 网站文章来源seo可信网站认证收费吗
  • 房产网站开发方案网页制作模板的名词解释
  • 个人可以做电影网站吗关于拳馆网站建设计划书
  • 网站主题及样式优化中煤第三建设集团网站
  • 品牌logo设计在线生成拼多多关键词怎么优化
  • 哪做网站最好网站建设公司的经营范围
  • 模板网站免费建站php和django做网站哪个好
  • 温州建设工程招聘信息网站宝安大型商城网站建设
  • 邯郸网站制作地方代运营电商公司排行榜
  • 郑州网站建设 股权投资网站建设流程周期
  • 虚拟主机 2个网站三合一网站建设方案
  • 东莞做网站哪家好ui是什么
  • 电脑做网站空间交换链接适用于哪些网站
  • 包头住房与城乡建设局网站wordpress怎么禁用多域名
  • 临沂网网站建设白银市住房和城乡建设厅网站首页
  • 厦门网站模板免费提交网址的网站
  • 一个好的网站怎样布局最新领导班子7人名单
  • 九江网站设计服务机构哪家好网站模板修改教程