Skip to content

lizhedyh/learn-express

Repository files navigation

learn-express / 面试进度追踪器

A learning project built with Express 5, featuring a full-stack interview progress tracker with session-based authentication.

基于 Express 5 的学习项目,包含一个支持 Session 登录认证的面试进度追踪网站。


Features / 功能

  • User registration and login (session-based) / 用户注册与登录(Session 认证)
  • Add, view, edit, and delete interview records / 面试记录的增删改查
  • JWT-based API login endpoint / JWT 接口登录
  • EJS server-side rendering / EJS 服务端渲染

Prerequisites / 环境要求

  • Node.js
  • MongoDB running locally on port 27017 / 本地 MongoDB 运行在 27017 端口

Getting Started / 快速开始

# Install dependencies / 安装依赖
npm install

# Start the server / 启动服务
node server.js

The server runs at http://localhost:3000.

服务启动后访问 http://localhost:3000


Usage / 使用流程

  1. Register an account at /register / 在 /register 注册账号
  2. Log in at /login / 在 /login 登录
  3. Click "我的面试记录" on the home page / 首页点击"我的面试记录"
  4. Add, edit, or delete interview entries / 添加、编辑或删除面试记录

Project Structure / 项目结构

├── server.js                  # Entry point / 入口文件
├── config/index.js            # JWT secret key / JWT 密钥配置
├── models/
│   ├── user-model.js          # User schema / 用户模型
│   └── interview-model.js     # Interview record schema / 面试记录模型
├── route/
│   ├── web/
│   │   ├── index.js           # Web routes (session auth) / Web 路由(Session 认证)
│   │   └── interviews.js      # Interview CRUD routes / 面试记录 CRUD 路由
│   └── api/
│       ├── auth.js            # JWT login API / JWT 登录接口
│       └── portrait.js        # File upload API / 文件上传接口
├── middlewares/
│   ├── check-login-middleware.js  # Session auth guard / Session 鉴权中间件
│   └── check-token-middleware.js  # JWT auth guard / JWT 鉴权中间件
├── views/
│   ├── home.ejs / login.ejs / register.ejs
│   └── interviews/
│       ├── index.ejs          # Interview list / 面试列表页
│       ├── new.ejs            # Add record form / 新建表单
│       └── edit.ejs           # Edit record form / 编辑表单
└── public/                    # Static files / 静态资源

API Endpoints / 接口

Method Path Description
POST /api/login JWT login, returns token / JWT 登录,返回 token
POST /api/portrait Upload avatar (requires token header) / 上传头像(需 token 请求头)

Tech Stack / 技术栈

  • Express 5 — Web framework / Web 框架
  • MongoDB + Mongoose — Database / 数据库
  • express-session + connect-mongo — Session management / Session 管理
  • jsonwebtoken — JWT authentication / JWT 认证
  • EJS — Template engine / 模板引擎
  • formidable — File upload parsing / 文件上传解析

About

learn express and ai

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors