手动搭建koa+ts项目框架(基础篇)

本文介绍了如何在Node.js项目中使用TypeScript,包括全局安装TypeScript、创建和配置tsconfig.json、初始化package.json文件,以及设置服务API入口和构建流程。通过这些步骤,提升项目代码质量并实现高效开发。
摘要由CSDN通过智能技术生成


前言

为什么要使用Node.js+TypeScript

  • TypeScript是一个JavaScript超集。它集成了JavaScript特性,并具有静态类型和类型检查等补充特性。
  • Node.js是非常流行的JavaScript框架。Node.js有一个强大的NPM(Node Package Manager)生态系统,提供开源代码(包),你可以在你的任何Node.js项目中使用。
  • Node.js非常适合制作服务器端应用程序,但它缺乏一些现代组件,如类型检查。Node.js的代码库也可能非常难以维护。
  • Typescript支持现代编码风格,如静态类型和类型检查。它是为构建广泛和高水平的应用程序而制作的。
  • 这使得你可以用强大的类型检查来编写基于服务器端的应用程序,这使得你可以避免运行时的类型错误和其他Typescript的优势,并充分利用Node.js的优势。

一、TS配置文件

1、全局安装TypeScript

安装typescript到全局

npm i typescript -g

查看安装版本

tsc --version

在这里插入图片描述

2、项目根目录创建Typescript配置文件

  • 新建./src/indexts文件
  • 初始化tsconfig.json文件
tsc --init
  • 根据实际需要修改配置文件

例如
rootDir:“/src”指定项目编译入口,实际指定./src/index.ts文件
outDir: "./dist"指定输出文件夹为dist
compilerOptions(编译器选项)同级新增exclude(排除)配置如下

{
	"compilerOptions": {
		...
		"module": "commonjs",                                /* Specify what module code is generated. */
	    "rootDir": "./src",                                  /* Specify the root folder within your source files. */
	    "moduleResolution": "node10",                     	 /* Specify how TypeScript looks up a file from a given module specifier. */
	    "outDir": "./dist",                                  /* Specify an output folder for all emitted files. */
	},
	"include": [
	   "src/**/**.ts",
	],
	"exclude":[
	    "./node_modules"
	  ]
}

在这里插入图片描述

二、项目初始化配置文件(package.json)

1、初始化配置文件

项目根目录执行命令npm init
在这里插入图片描述

2、安装依赖

koa框架

npm i koa -S
and
npm i @types/koa -D // 支持TS

使用es6的import导入模版

如果项目使用require需要安装@types/node让项目支持require导入模块

npm i @types/node -S

require与import的区别

  • 1、require是CommonJS规范的模块化语法,import是ECMAScript 6规范的模块化语法;
  • 2、require是运行时加载,import是编译时加载;
  • 3、require可以写在代码的任意位置,import只能写在文件的最顶端且不可在条件语句或函数作用域中使用;

在这里插入图片描述

三、开启简单的服务API

入口文件

/src/index.ts文件

import Koa from "koa";

const app = module.exports = new Koa();

app.use(async function (ctx: Koa.Context) {
  ctx.body = 'Hello World';
});
if (!module.parent) app.listen(3000);

新增脚本

  • package.json
    新增build脚本(先使用tsc转译TSJS,然后使用node命令开启编译后的js文件)
{
  ...
  "scripts": {
    "build": "tsc && node ./dist/index.js",
    ...
  },
  ...
}
  • 执行npm run build
    在这里插入图片描述
  • 可看到成功生成dist文件
    在这里插入图片描述
  • 打开浏览器访问localhost:3000
    在这里插入图片描述

总结

按照上述步骤操作,即可开启TS+Koa项目啦~

如有启发,可点赞收藏哟~

  • 29
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,这是一个比较具体的问题,我尽量给出详细的回答。 首先,你需要了解每个工具的作用: - Node.js: 一个基于 Chrome V8 引擎的 JavaScript 运行时,可用于构建高性能的网络应用程序。 - Midway.js: 一个基于 Egg.js 的 Serverless Node.js 框架,提供了函数计算、API 网关等 Serverless 场景下的解决方案。 - Koa: 一个基于 Node.js 平台的 Web 开发框架,旨在提供更小、更富有表现力、更健壮的 Web 应用程序。 - TypeScript: 是 JavaScript 的一个超集,可以编译成纯 JavaScript。 接下来,你可以按照以下步骤进行开发: 1. 创建一个基于 Midway.js 的应用程序: ``` $ npm init midwayjs-app jsapi ``` 2. 安装需要的依赖: ``` $ cd jsapi $ npm install koa koa-bodyparser koa-router cross-env --save $ npm install @midwayjs/koa @midwayjs/faas @midwayjs/socketio --save $ npm install typescript ts-node @types/node --save-dev ``` 3. 创建 TypeScript 配置文件 `tsconfig.json`: ``` { "extends": "@midwayjs/tsconfig/tsconfig.json", "compilerOptions": { "outDir": "dist", "rootDir": "src" }, "include": ["src"] } ``` 4. 创建一个简单的 TypeScript 控制器: ``` import { Provide, Controller, Get, Post, Body } from '@midwayjs/decorator'; import { Context } from 'koa'; @Provide() @Controller('/api') export class ApiController { @Get('/hello') async hello(ctx: Context) { ctx.body = 'Hello Midwayjs'; } @Post('/share') async share(@Body() body) { const { url } = body; // 解析分享链接 // ... // 返回解析结果 return { title, desc }; } } ``` 5. 创建 Koa 应用程序: ``` import { App, Config, Inject } from '@midwayjs/decorator'; import { ILifeCycle, IMidwayApplication } from '@midwayjs/core'; import { Application } from 'egg'; import * as bodyParser from 'koa-bodyparser'; import * as Router from 'koa-router'; @Config() export class AppConfig implements ILifeCycle { @Inject() app: IMidwayApplication; async onReady() { const app = this.app.getApplication() as Application; // 添加中间件 app.use(bodyParser()); app.use(app.get('koaRouter').routes()); // 启动应用程序 app.listen(3000, () => { console.log('Server listening on http://localhost:3000'); }); } } @App() export class ApiApplication implements ILifeCycle { @Inject() app: IMidwayApplication; async onReady() { const router = this.app.getApplicationContext().get('koaRouter') as Router; router.get('/api/hello', async (ctx) => { ctx.body = 'Hello Koa'; }); } } ``` 6. 启动应用程序: ``` $ npm run dev ``` 7. 使用 curl 或者 Postman 等工具测试 API: ``` $ curl -X GET http://localhost:3000/api/hello ``` ``` $ curl -X POST http://localhost:3000/api/share -d '{"url": "http://example.com"}' ``` 这样,一个基于 Node.js、Midway.js、Koa、TypeScript 的 API 解析程序就完成了。当然,这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值