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 与之交互。

posted @   yangstar  阅读(70)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.