第10回:模型、迁移与种子学习笔记

第10回-模型、迁移与种子学习笔记 记录日期: 2025年6月19日 学习目标 理解Sequelize中的模型(Model)概念 掌握数据库迁移(Migration)的操作流程 学习使用种子(Seed)数据初始化数据库 实践常用的CLI命令 模型(Model)创建 使用CLI创建模型 Sequelize CLI提供了便捷的模型生成命令,可以同时创建模型文件和对应的迁移文件: 1 sequelize model:generate --name Article --attributes title:string,content:text 这个命令会: 在models目录下创建article.js模型文件 在migrations目录下创建对应的迁移文件 解析命令参数 --name Article: 指定模型名称(首字母大写,单数形式) --attributes title:string,content:text: 定义模型属性和数据类型 title:string: 标题字段,字符串类型 content:text: 内容字段,文本类型 模型文件结构 生成的模型文件(models/article.js)大致结构: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 'use strict'; const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class Article extends Model { static associate(models) { // 定义与其他模型的关联 } } Article....

2025-08-05 · 2 min

第1回:Node.js全栈开发课程概览与学习目标

第1回:Node.js全栈开发课程概览与学习目标 创建日期: 2025年6月15日 学习状态: 🎯 明确目标 🚀 课程最终目标 核心理念 使用JS全栈开发项目 - 用JavaScript一种语言完成前后端全部开发 技术架构概览 1 2 3 4 5 6 7 8 9 10 11 12 13 14 这套课程 使用JS全栈开发项目 项目搭建 ←→ 数据库 → Node.js接口 → Vue ↓ React ↓ React Native ↓ 小程序 ↓ uni-app 真实项目开发 ← 用Vue、React、React Native等技术 📋 完整学习路径 1. 基础搭建阶段 项目搭建: 开发环境配置 Node.js环境: nvm安装与版本管理 ✅ (第2回已完成) 2. 后端开发阶段 数据库设计: 数据存储方案 Node.js接口开发: RESTful API设计与实现 数据库连接: 后端与数据库交互 3. 前端技术栈实现 Vue....

2025-08-05 · 1 min

第2回:使用nvm安装Node.js - 学习笔记

第2回:使用nvm安装Node.js - 学习笔记 学习日期: 2025年6月15日 学习状态: 🚀 准备开始 1. 为何要用nvm? 核心概念 (记录nvm的作用和重要性) 主要优势 版本管理: 项目隔离: 开发便利性: 实际应用场景 (什么情况下需要使用nvm) 2. Windows和macOS安装nvm的方式 Windows安装步骤 准备工作 检查系统版本 卸载已有Node.js(如果存在) 安装过程 下载nvm-windows 下载地址: 版本选择: 安装配置 安装路径: 环境变量设置: 验证安装 1 nvm version 预期输出: 常见问题及解决方案 问题1: 解决方案: 问题2: 解决方案: macOS安装步骤 使用Homebrew安装 1 # 安装命令记录 使用curl安装 1 # 安装命令记录 3. 使用nvm安装Node.js 查看可用版本 1 nvm list available 当前最新版本: 推荐版本: 安装指定版本 1 nvm install [版本号] 安装记录 安装的版本: 安装时间: 安装过程: 验证安装 1 2 node --version npm --version Node....

2025-08-05 · 2 min

第3回:创建Express项目 - 学习笔记

第3回:创建Express项目 - 学习笔记 学习日期: 2025年6月15日 学习状态: 🚀 学习中 🎯 本回学习目标 理解Express框架的作用 掌握Express项目生成器的使用 学会创建标准的Express项目结构 理解npm命令的各个参数含义 📦 npm命令详解 核心命令分析:npm i -g express-generator@4 🔍 命令拆解 1 2 3 4 5 6 npm i -g express-generator@4 │ │ │ │ └── 版本号:指定安装4.x版本 │ │ │ └── 包名:Express项目生成器 │ │ └── 全局安装标志 │ └── install的简写 └── Node Package Manager 各部分详细说明 1. npm - Node包管理器 全称: Node Package Manager 作用: Node.js的官方包管理工具 功能: 安装、管理、发布Node.js包 2. i - install命令的简写 ⭐ 完整形式: npm install 简写形式: npm i 作用: 安装指定的npm包 使用频率: 非常高,是最常用的npm命令之一 💡 重要理解: i 就是 install 的缩写,两者完全等价!...

2025-08-05 · 5 min

第9回:使用Sequelize ORM学习笔记

第9回-使用Sequelize ORM学习笔记 记录日期: 2025年6月19日 学习目标 了解ORM(对象关系映射)的概念和优势 安装并配置Sequelize CLI和核心依赖 学习使用Sequelize连接和操作MySQL数据库 实践模型定义和基础数据库操作 安装步骤 1. 全局安装Sequelize CLI工具 首先安装Sequelize命令行工具,用于生成项目结构和管理数据库迁移: 1 npm i -g sequelize-cli 注意:安装的是sequelize-cli而非sequlize,命名需要特别注意 2. 安装项目依赖 在项目中安装Sequelize核心包和MySQL驱动: 1 npm i sequelize mysql2 Sequelize基础概念 Sequelize是一个基于Promise的Node.js ORM工具,它支持多种数据库,包括: MySQL PostgreSQL SQLite MSSQL ORM的优势 对象映射:将数据库表映射为JavaScript对象 类型安全:提供数据类型验证 便捷操作:简化SQL查询编写 迁移支持:通过迁移文件管理数据库结构变更 关联关系:简化表间关系管理 项目初始化 创建Sequelize项目结构 1 npx sequelize-cli init 这个命令会创建以下目录: config: 包含配置文件 models: 定义数据模型 migrations: 数据库变更记录 seeders: 初始数据 配置数据库连接 修改config/config.json文件: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 { "development": { "username": "root", "password": "你的密码", "database": "node_project_dev", "host": "127....

2025-08-05 · 1 min

项目开发复盘报告:题库适配器与平台迁移

好的,这是一份经过整理和条理化的复盘报告,涵盖了您提供的所有内容。 项目开发复盘报告:题库适配器与平台迁移 本文档旨在系统地复盘“为 tikuAdapter 新增适配端点”任务从初期开发、环境配置、数据兼容性处理,直至最终平台迁移与自动化部署的完整过程。报告详细记录了关键任务、遇到的问题、解决方案及宝贵的经验教训。 I. 核心API端点开发与初期问题解决 1.1 任务目标 创建一个新的 API 端点 /tikuAdapter,该端点能够接收特定格式请求,调用外部题库 API (api.tikuhai.com),并将返回数据转换为 tikuAdapter 所需的 JSON 格式。 1.2 已完成工作 新增 /tikuAdapter 端点:在 src/app.js 中成功添加了路由和 handleTikuAdapterSearch 处理函数。 实现数据格式转换:在 handleTikuAdapterSearch 中编写核心逻辑,将 api.tikuhai.com 的响应重组,包括保留 question 和 options,并动态生成 answerKey、answerIndex、answerKeyText 和 answerText 等字段。 1.3 遇到的问题及解决方案 问题一:服务器连接重置 现象: curl 测试时收到 (56) Recv failure: Connection was reset 错误。 分析: 服务器处理请求时意外终止或崩溃。 解决方案: 检查 request.log 日志文件,定位导致崩溃的具体异常。 问题二:处理 options 字段时的类型错误 现象: 日志显示 TypeError: Cannot read properties of undefined (reading 'indexOf')。 分析: 当客户端请求 JSON 不含 options 字段时,options 变量为 undefined,导致后续调用 indexOf 失败。 解决方案: 增加防御性编程:const options = data....

2025-08-05 · 3 min

项目开发复盘报告:题库适配器与平台迁移

好的,这是一份经过整理和条理化的复盘报告,涵盖了您提供的所有内容。 项目开发复盘报告:题库适配器与平台迁移 本文档旨在系统地复盘“为 tikuAdapter 新增适配端点”任务从初期开发、环境配置、数据兼容性处理,直至最终平台迁移与自动化部署的完整过程。报告详细记录了关键任务、遇到的问题、解决方案及宝贵的经验教训。 I. 核心API端点开发与初期问题解决 1.1 任务目标 创建-一个新的 API 端点 /tikuAdapter,该端点能够接收特定格式请求,调用外部题库 API (api.tikuhai.com),并将返回数据转换为 tikuAdapter 所需的 JSON 格式。 1.2 已完成工作 新增 /tikuAdapter 端点:在 src/app.js 中成功添加了路由和 handleTikuAdapterSearch 处理函数。 实现数据格式转换:在 handleTikuAdapterSearch 中编写核心逻辑,将 api.tikuhai.com 的响应重组,包括保留 question 和 options,并动态生成 answerKey、answerIndex、answerKeyText 和 answerText 等字段。 1.3 遇到的问题及解决方案 问题一:服务器连接重置 现象: curl 测试时收到 (56) Recv failure: Connection was reset 错误。 分析: 服务器处理请求时意外终止或崩溃。 解决方案: 检查 request.log 日志文件,定位导致崩溃的具体异常。 问题二:处理 options 字段时的类型错误 现象: 日志显示 TypeError: Cannot read properties of undefined (reading 'indexOf')。 分析: 当客户端请求 JSON 不含 options 字段时,options 变量为 undefined,导致后续调用 indexOf 失败。 解决方案: 增加防御性编程:const options = data....

2025-08-05 · 3 min