Node + Express + TypeScript项目搭建

本文借鉴了:
https://www.wandouip.com/t5i348585/ 这篇文章为什么还要写:因为这篇文章写的不够详细和有的地方容易出错都去了但功能大致一样

前提:
请安装npm,typescript,tslint。命令以下
安装npm :npm install -g npm
测试npm :npm -v正确应出版本号

安装typescript:npm install -g typescript
测试typescript:tsc -v正确应出版本号

如果typescript安装出错看我的另一篇文章:
https://blog.csdn.net/qq_41984953/article/details/102677245

安装tslint :npm install -g tslint
测试tslint :tslint -v
以上可通过cmd安装,软件也可以运行

项目目录

   NodeExpressTypeScript   <--项目名称
           src:
                 app.ts
           .npmrc
           package.json
           package-lock.json
           tsconfig.json
           tslint.json

文件说明:
NodeExpressTypeScript/src/app.ts //程序主入口
NodeExpressTypeScript/.npmrc //项目 npm 配置文件,可针对项目单独设置npm的配置
NodeExpressTypeScript/package.json //项目模块描述文件
NodeExpressTypeScript/tsconfig.json //typescript配置文件
NodeExpressTypeScript/tslint.json //tslint配置文件

文件配置:
package.json
配置指令集合当我们使用npm run *时候,*表示我们再package.json的script节点下配置的指令.

{
  "scripts": {
    "tsc": "tsc",
    "dev": "ts-node-dev --respawn --transpileOnly ./src/app.ts",
    "prod": "tsc && node ./dist/app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
   }
}

以上配置,当我们执行 npm run dev的时候,实践会将 dev后配置的语句进行执行注意最外面有大括号包围

下面我们安装 express 模块,在项目根目录下运行:
命令如下:npm install --save express // 安装普通 express 模块,并在 dependencies 下生成包记录

命令如下:npm install --save-dev express // 安装带有声明文件的 express 模块,并在 devDependencies 下生成包记录,仅开发模式下安装。

此时 package.json 如下(仅贴关键代码):

"dependencies": {
  "express": "^4.17.1"
},
"devDependencies": {
  "@types/express": "^4.17.0"
}

注意加上前面配置的,package.json大致目录应为
{
“scripts”:{
},
“dependencies”:{
},
“devDependencies”:{
}
}

tsconfig.json
如果一个目录下存在存在 tsconfig.json 文件,那么就意味着这个目录是 typescipt 项目的根目录。tsconfig.json 定义了用来编译这个项目的根目录及编译选项。让我们一起来看看其中的一些关键配置项。

"target": "es6" // 指定 EECMAScript 的目标版本, 这里我们采用 es6
"module": "commonjs" // 指定编译生成哪个模块的系统代码,考虑到兼容性,这里我们设置成 commonjs
"moduleResolution": "node" // 决定如何处理模块。设置为 node
"outDir": "dist" // 编译输出目录,即 .ts 文件编译成 .js 文件后的输出目录。这里设置为根目录下的 /dist 目录
"baseUrl": "./" // 定义 ts 项目的根目录,设置 paths 前必须设置 baseUrl,paths中设置的路径是基于根目录来的
"include": ["src/**/*"] // 需要编译的 ts 文件,这里设置为 src 目录下的所有文件

搭建 express 服务
安装 body-parser 模块,用于处理 post 请求的请求体

命令如下:npm install --save body-parser

在 /src 目录下建立 config 目录下,目录下建立 index.ts,用于存放项目的一些公开修改配置,我们将 Express 服务占用的端口写在其中,代码如下:

const systemConfig = {
  port: 8000,
};

在 /src/app.ts 下创建 Express 服务

// 第三方模块
import bodyParser from 'body-parser';
import express from 'express';
import { NextFunction, Request, Response } from 'express'; // express 申明文件定义的类型

// 自定义模块
import { systemConfig } from './config';

const app = express();

// 处理 post 请求的请求体,限制大小最多为 20 兆
app.use(bodyParser.urlencoded({ limit: '20mb', extended: true }));
app.use(bodyParser.json({ limit: '20mb' }));

// error handler
app.use(function(err: Error, req: Request, res: Response, next: NextFunction) {
    return res.sendStatus(500);
});
app.get('/',function(req,res){
    res.send("Hello World!");
});
app.listen(systemConfig.port, function() {
    console.log(`the server is start at port ${systemConfig.port}`);
});

export default app;

运行项目:
npm run dev:运行的ts文件 可查看packag.json配置
npm run prod:运行js文件 可查看packag.json配置
npm run prod 命令是同时运行了两条命令tsc语句是把ts文件编译成js文件node ./dist/app.js命令是运行dist文件夹下的app.js
如前文配置的tsconfig.json文件下的outDir配置是运行tsc语句时会把ts格式的文件编译成的js格式的文件并放到dist文件夹下面

如果运行了npm run prod命令那么项目目录为:

 NodeExpressTypeScript   <--项目名称
          dist
                 config
                       index.js
                  app.js
           src:
                 config
                       index.ts
                 app.ts
           .npmrc
           package.json
           package-lock.json
           tsconfig.json
           tslint.json
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue3是一种用于构建用户界面的JavaScript框架,它是Vue.js的最新版本。它具有更快的渲染速度和更小的体积,并且支持TypeScript作为主要开发语言。TypeScript是JavaScript的超集,它添加了静态类型检查和其他特性,以提高代码的可维护性和可读性。 Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许您在服务器端运行JavaScript代码。它具有非阻塞I/O和事件驱动的特性,使其非常适合构建高性能和可扩展的网络应用程序。 MySQL是一种广泛使用的关系型数据库管理系统,它使用结构化查询语言(SQL)来管理和操作数据。您可以使用MySQL来创建和管理数据库,并执行各种操作,如查询、插入、更新和删除数据。 在您提供的引用中,第3个引用显示了如何使用Node.js编写一个接口,并从MySQL数据库中获取数据。通过在接口中使用express、cors和mysql模块,您可以创建一个HTTP服务来响应来自客户端的请求并与数据库进行交互。 因此,结合Vue3、TypeScriptNode.js和MySQL,您可以使用Vue3构建前端界面,使用TypeScript编写前端代码,使用Node.js作为后端服务器,并通过MySQL进行数据存储和管理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vite + vue3 + ts + nodejs + mysql搭建全栈项目_2](https://blog.csdn.net/SteveShenmo/article/details/126276763)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [vite + vue3 + ts + nodejs + mysql搭建全栈项目_3](https://blog.csdn.net/SteveShenmo/article/details/126290479)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值