如何在Node.js和Express中设置TypeScript(2023年)

如何在Node.js和Express中设置TypeScript(2023年)

在这篇文章中,我们将介绍在Express应用程序中设置TypeScript的最佳方法,了解与之相关的基本限制。

文章目录

创建初始文件夹和package.json

shell 复制代码
mkdir node-express-typescript
cd node-express-typescript
npm init --yes

在初始化package.json文件之后,新创建的文件可能会像下面的代码一样:

json 复制代码
{
  "name": "Your File Name",
  "version": "1.0.0",
  "description": "",
  "main": "index.ts", // 将入口点从js更改为.ts
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "type": "module",
  "keywords": [],
  "author": "",
  "license": "ISC"
}

安装TypeScript和其他依赖项

sh 复制代码
npm install express mongoose cors mongodb dotenv
sh 复制代码
npm install  -D typescript ts-node-dev @types/express @types/cors

生成tsconfig.json文件

bash 复制代码
npx tsc --init

上述命令将生成一个名为tsconfig.json的新文件,其中包含以下默认的编译器选项:

bash 复制代码
target: es2016
module: commonjs
strict: true
esModuleInterop: true
skipLibCheck: true
forceConsistentCasingInFileNames: true
  • 在打开tsconfig.json文件后,您会看到许多其他被注释掉的编译器选项。在tsconfig.json中,compilerOptions是一个必填字段,需要指定。

    • 将rootDir和outDir设置为src和dist文件夹
json 复制代码
{
  "compilerOptions": {
    "outDir": "./dist"

    // other options remain same
  }
}

使用.ts扩展名创建一个Express服务器

创建一个名为index.ts的文件并打开它

typescript 复制代码
import express, { Express, Request, Response , Application } from 'express';
import dotenv from 'dotenv';

//For env File 
dotenv.config();

const app: Application = express();
const port = process.env.PORT || 8000;

app.get('/', (req: Request, res: Response) => {
  res.send('Welcome to Express & TypeScript Server');
});

app.listen(port, () => {
  console.log(`Server is Fire at http://localhost:${port}`);
});

监听文件更改并构建目录

bash 复制代码
npm install  nodemon

安装这些开发依赖项后,更新package.json文件中的脚本:

bash 复制代码
{

  "scripts": {
    "build": "npx tsc",
    "start": "node dist/index.js",
    "dev": "nodemon index.ts"
  }
}

运行代码

bash 复制代码
npm run dev 

如果一切正常,您将在控制台中看到以下消息:

Server is Fire at http://localhost:8000

相关推荐
moMo1 小时前
深入 NestJS:从工厂模式到装饰器模式的架构之美
typescript·nestjs
渔夫正在掘金3 小时前
Cordis 插件热插拔能力深度解析
后端·node.js
烬羽9 小时前
NestJS 依赖注入:Controller 里那个没有 new 的 service,到底从哪来的?
设计模式·typescript·nestjs
渣波9 小时前
NestJS 企业级后端架构实战:从核心代码到工程化思维的深度重构
前端·typescript·nestjs
嘟嘟07179 小时前
NestJS 入门:从 NestFactory 入口到 Module/Controller/Service 模块化结构一次讲清
typescript·node.js·nestjs
breeze jiang11 小时前
NestJS MVC 实战:用 hello 项目 7 个文件讲清分层、装饰器、依赖注入与错误处理
node.js·mvc·js
用户9385156350721 小时前
实战 Todo CRUD —— 从路由到异常,手写一个完整模块
后端·typescript·nestjs
m0_3807438721 小时前
从零调用 Claude 教程
开发语言·python·node.js
烬羽1 天前
从 nest new 到 Hello World:一个最小 NestJS 项目,讲透工厂 + 装饰器 + 模块化
设计模式·node.js·nestjs
不知疲倦的老鸟1 天前
Next.js 15 多语言站点的 6 个坑:从 query string 路由到 URL 路径
typescript·next.js