# Blogs_node **Repository Path**: liumosq/blogs_node ## Basic Information - **Project Name**: Blogs_node - **Description**: 一个node的后端项目 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-11-14 - **Last Updated**: 2025-01-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nodejs, mysql2 ## README # Blogs_node 基于 Express + MariaDB 开发的一个后端程序,目的是学习后端和为学习前端页面提供一个后端API。 ## 1.环境变量 进入工作目录,把文件 `.enva` 名称修改为 `.env` ```bash mv .enva .env ``` 并修改环境变量 ## 2.数据库准备 ### 2.1 用户表(users) | 字段名 | 数据类型 | 描述 | | ------------ | --------------------- | ------------------------------ | | id | INT | 用户ID,主键 | | username | VARCHAR(255) | 用户名,唯一 | | password | CHAR(64) | 加密后的密码 | | email | VARCHAR(255) | 邮箱地址,唯一,并建立唯一索引 | | profileImage | VARCHAR(255) | 头像URL | | bio | VARCHAR(255) | 用户简介 | | created_at | BIGINT | 账户创建时间戳 | | updated_at | BIGINT | 账户最后更新时间戳 | | status | TINYINT(1) | 用户状态(1=活跃,0=禁用) | | role | ENUM('user', 'admin') | 用户角色,区分普通用户和管理员 | 对应代码: ```mysql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255) NOT NULL UNIQUE, password CHAR(64) NOT NULL, email VARCHAR(255) NOT NULL UNIQUE, profileImage VARCHAR(255), bio VARCHAR(255), created_at BIGINT NOT NULL, updated_at BIGINT NOT NULL, status TINYINT(1) DEFAULT 1 CHECK (status IN (0, 1)), role ENUM('user', 'admin') DEFAULT 'user' ); ``` ### 2.2 文章表(posts) | 字段名 | 数据类型 | 描述 | | ---------- | ------------ | ------------------------------------ | | id | INT | 文章ID,主键 | | user_id | INT | 作者ID,外键 | | title | VARCHAR(255) | 文章标题,可建立全文索引(如果支持) | | content | TEXT | Markdown文章内容 | | created_at | BIGINT | 文章发布时间 | | updated_at | BIGINT | 文章最后更新时间 | | published | TINYINT(1) | 是否发布(1=是,0=否) | | views | INT | 文章浏览量 | 对应代码: ```mysql CREATE TABLE posts ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, title VARCHAR(255) NOT NULL, content TEXT NOT NULL, created_at BIGINT NOT NULL, updated_at BIGINT NOT NULL, published TINYINT(1) DEFAULT 0, views INT DEFAULT 0, FOREIGN KEY (user_id) REFERENCES users(id), FULLTEXT (title) -- 如果数据库支持全文索引 ); ```