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 @ 2024-11-19 13:58  yangstar  阅读(24)  评论(0编辑  收藏  举报