网站首页/ 信息中心/ 档案百科/

从零搭建零门槛轻量级Node.js+MySQL养老院档案管理系统全步骤

发布时间:2026年09月16日 02:25:20 浏览量:0

一、前置准备:5分钟完成环境安装

1. Node.js环境

下载地址:https://nodejs.org/dist/v18.20.4/node-v18.20.4-x64.msi(Windows64位),其他版本去官网首页的「Download」区域按系统选LTS长期维护版。

安装时全程默认选项,安装完成后打开cmd(Windows)或终端(Mac/Linux),输入node -vnpm -v,出现v18.x.x和9.x.x版本号即为成功。

2. MySQL数据库

下载地址:https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.39.0.msi(Windows64位),Mac/Linux选官网对应LTS版本。

安装选「Developer Default」,中间必须记住设置的root密码(建议设为简单但不常用的,比如elder12345),其余选项默认,安装完成后启动MySQL服务:Windows任务栏搜索「Services.msc」,找到「MySQL80」右键启动;Mac用brew services start mysql;Linux用systemctl start mysqld

3. VS Code编辑器

下载地址:https://code.visualstudio.com/Download,按系统安装即可。

二、项目初始化与依赖安装

在桌面新建文件夹命名为elder-care-archive,右键打开VS Code,选择「文件」-「打开文件夹」选中该文件夹。

打开VS Code内置终端(快捷键Ctrl+`),依次输入以下3条命令:

三、数据库建库建表

打开cmd(Windows),输入mysql -u root -p,输入之前设置的root密码(输入时不显示字符,直接回车),进入MySQL命令行,依次执行以下SQL语句(每条以;结尾):

```sql CREATE DATABASE elder_care_archive DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE elder_care_archive; CREATE TABLE elder ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(20) NOT NULL, gender ENUM('男','女') NOT NULL, birth DATE NOT NULL, id_card VARCHAR(18) NOT NULL UNIQUE, phone VARCHAR(11) NOT NULL, room VARCHAR(10) NOT NULL, guardian_name VARCHAR(20) NOT NULL, guardian_phone VARCHAR(11) NOT NULL, entry_date DATE NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ```

从零搭建零门槛轻量级Node.js+MySQL养老院档案管理系统全步骤

执行成功后输入exit退出MySQL命令行。

四、核心代码编写

1. 项目目录结构

在elder-care-archive文件夹下手动创建以下子文件夹和文件:

2. db.js数据库连接

完整内容直接复制:

```javascript const mysql = require('mysql2/promise'); const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'elder12345', // 替换为你自己的MySQL root密码 database: 'elder_care_archive', waitForConnections: true, connectionLimit: 10, queueLimit: 0 }); module.exports = pool; ```

3. app.js核心服务

完整内容直接复制:

```javascript const express = require('express'); const pool = require('./db'); const path = require('path'); const app = express(); // 配置中间件 app.set('view engine', 'ejs'); app.set('views', path.join(__dirname, 'views')); app.use(express.static(path.join(__dirname, 'public'))); app.use(express.urlencoded({ extended: true })); // 档案列表页路由 app.get('/', async (req, res) => { const [elders] = await pool.query('SELECT FROM elder ORDER BY entry_date DESC'); res.render('index', { elders }); }); // 新增档案页路由 app.get('/add', (req, res) => { res.render('add'); }); // 新增档案提交路由 app.post('/add', async (req, res) => { const { name, gender, birth, id_card, phone, room, guardian_name, guardian_phone, entry_date } = req.body; await pool.query('INSERT INTO elder (name, gender, birth, id_card, phone, room, guardian_name, guardian_phone, entry_date) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', [name, gender, birth, id_card, phone, room, guardian_name, guardian_phone, entry_date]); res.redirect('/'); }); // 编辑档案页路由 app.get('/edit/:id', async (req, res) => { const [elders] = await pool.query('SELECT FROM elder WHERE id = ?', [req.params.id]); res.render('edit', { elder: elders[0] }); }); // 编辑档案提交路由 app.post('/edit/:id', async (req, res) => { const { name, gender, birth, id_card, phone, room, guardian_name, guardian_phone, entry_date } = req.body; await pool.query('UPDATE elder SET name=?, gender=?, birth=?, id_card=?, phone=?, room=?, guardian_name=?, guardian_phone=?, entry_date=? WHERE id=?', [name, gender, birth, id_card, phone, room, guardian_name, guardian_phone, entry_date, req.params.id]); res.redirect('/'); }); // 删除档案路由 app.get('/delete/:id', async (req, res) => { await pool.query('DELETE FROM elder WHERE id = ?', [req.params.id]); res.redirect('/'); }); // 启动服务 app.listen(3000, () => { console.log('系统已启动,访问地址:http://localhost:3000'); }); ```

4. EJS模板文件

layout.ejs完整内容:

```html <%= title || '养老院档案管理系统' %> <%- body %> ```

index.ejs完整内容:

```html <%- include('layout', {title: '档案列表'}) %>

养老院老人档案列表

新增档案 <% elders.forEach(elder => { %> <% }) %>
姓名 性别 出生年月 身份证号 联系电话 房间号 入住日期 操作
<%= elder.name %> <%= elder.gender %> <%= elder.birth.toISOString().split('T')[0] %> <%= elder.id_card %> <%= elder.phone %> <%= elder.room %> <%= elder.entry_date.toISOString().split('T')[0] %> 编辑 删除
```

add.ejs完整内容:

```html <%- include('layout', {title: '新增档案'}) %>

新增老人档案

返回
```

edit.ejs完整内容:

```html <%- include('layout', {title: '编辑档案'}) %>

编辑老人档案

返回
```

五、系统启动与使用

在VS Code内置终端输入nodemon app.js,看到「系统已启动,访问地址:http://localhost:3000」即为成功。

打开浏览器访问该地址,即可进行档案的新增、编辑、删除、查看操作。

技改项目档案管理软件:别让资料在硬盘里“吃灰”了
技改项目档案管理软件:别让资料在硬盘里“吃灰”了
这事儿吧,说起来挺扎心的。很多企业,尤其是制造业、能源、建筑这些行业,上马技改项目的时候,那真是热火朝天,图纸、合同、验收报告、变更单……文件多到能把人埋了。项目一结束,庆功宴吃完,这些宝贵的资料往硬...
2026年09月16日 02:25:20
别踩档案管理的坑今年最新规定你得记牢软件方面重点看
别踩档案管理的坑今年最新规定你得记牢软件方面重点看
各位打工人、行政岗的苦逼兄弟姐妹们!最近刷工作群、行业小论坛刷得我脑壳嗡嗡——全是喊着“救命啊单位档案被查要求整改软件!晚了扣绩效扣年终奖!”的哀嚎。作为上个月刚陪我们档案室李姐(就是那个头发掉一半但...
2026年09月16日 02:25:20
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818