Node.js 后端项目部署与 Docker 容器化过程总结
Node.js 后端项目部署与 Docker 容器化过程总结
在windows本地
1. 准备 Node.js 项目
- 安装并初始化 Node.js 项目:
npm init -y - 安装所需的依赖:
npm install express mssql dotenv
2. 编写后端代码 (app.js
)
- 使用
express
创建路由,连接 SQL Server 数据库,处理数据库操作:
const express = require('express'); const { connectDB, queryDB, getAllRecords } = require('./db'); const app = express(); const port = 3001; // 使用 JSON 解析请求体 app.use(express.json()); // 数据库连接 connectDB(); // 示例:查询数据库中的数据 app.get('/api/data', async (req, res) => { try { const result = await queryDB('SELECT * FROM your_table_name'); res.json(result); } catch (err) { res.status(500).json({ error: '查询失败' }); } }); // 查询 HISDOCOFFLINEMODEL 表 app.get('/api/hisdoctable', async (req, res) => { try { const records = await getAllRecords(); res.json(records); // 返回查询结果 } catch (err) { res.status(500).json({ error: '查询失败' }); } }); // 启动服务器 app.listen(port, () => { console.log(`服务器正在运行,访问:http://localhost:${port}`); });
3. 配置数据库连接 (db.js
)
- 使用
mssql
库连接 SQL Server,进行数据库查询操作:
const sql = require('mssql'); require('dotenv').config(); const config = { user: process.env.DB_USER, password: process.env.DB_PASSWORD, server: process.env.DB_SERVER, database: process.env.DB_DATABASE, options: { encrypt: false, trustServerCertificate: true } }; async function connectDB() { try { await sql.connect(config); console.log('数据库连接成功'); } catch (err) { console.error('数据库连接失败:', err); } } async function queryDB(query) { try { const result = await sql.query(query); return result.recordset; } catch (err) { throw err; } } async function getAllRecords() { const query = 'SELECT * FROM HISDOCOFFLINEMODEL'; return await queryDB(query); } module.exports = { connectDB, queryDB, getAllRecords };
4. Docker 容器化
- 创建
Dockerfile
文件来构建镜像:
# 使用 Node.js 官方镜像 FROM node:18 # 设置工作目录 WORKDIR /usr/src/app # 复制项目文件到容器中 COPY package*.json ./ # 安装依赖 RUN npm install # 复制源代码 COPY . . # 暴露端口 EXPOSE 3001 # 启动应用 CMD ["node", "app.js"]
-
使用 Docker 构建镜像:
docker build -t nodebackend . -
运行容器并映射端口:
docker run -p 3001:3001 nodebackend
5. 检查与调试
- 在 Docker 容器中运行应用后,通过
http://localhost:3001
访问接口,确保服务正常运行。 - 在浏览器中访问 API,例如:
http://localhost:3001/api/data
http://localhost:3001/api/hisdoctable
6. 总结
- 使用 Docker 容器化 Node.js 应用能够方便地将应用和其依赖打包,确保开发和生产环境的一致性。
- 完成 Docker 镜像的构建和部署后,容器将运行数据库查询接口,前端可以通过 REST API 与之交互。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步