Skip to content

Latest commit

 

History

History
93 lines (78 loc) · 1.51 KB

express.md

File metadata and controls

93 lines (78 loc) · 1.51 KB

初始化项目

依赖

{
  "devDependencies": {
    "@types/cors": "^2.8.13",
    "@types/express": "^4.17.17",
    "@types/morgan": "^1.9.4",
    "@types/node": "^20.2.3",
    "nodemon": "^2.0.22",
    "ts-node": "^10.9.1",
    "typescript": "^5.0.4"
  },
  "dependencies": {
    "cors": "^2.8.5",
    "dotenv": "^16.0.3",
    "express": "^4.18.2",
    "morgan": "^1.10.0"
  }
}

script

{
  "scripts": {
    "dev": "nodemon --exec ts-node src/index.ts",
    "build": "tsc"
  }
}

文件结构

├── package-lock.json
├── package.json
├── src
│   ├── handlers
│   ├── index.ts
│   ├── modules
│   ├── router.ts
│   └── server.ts
└── tsconfig.json
// index.ts
import * as dotenv from "dotenv";
dotenv.config();
import app from "./server";

app.listen(3001, () => {
  console.log("serve on http://localhost:3001");
});
// server.ts
import express from "express";
import router from "./router";
import morgan from "morgan";
import cors from "cors";

const app = express();

app.use(cors());
app.use(morgan("dev"));
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

app.use("/api", router);
app.use((err, req, res, next) => {
  console.log(err);
  res.json({ message: `had an error: ${err}` });
});

export default app;
// router.ts
import { Router } from "express";
const router = Router();

router.get("/", (req, res) => {
  res.json({ msg: "hello " });
});
export default router;