一、首先你需要创建一个node项目
- 初始化项目:
打开终端,导航到你想要创建项目的目录,然后运行以下命令来创建一个新的 Node.js 项目:
mkdir my-express-app
cd my-express-app
npm init -y
这将创建一个新的目录 my-express-app,并在其中初始化一个新的 Node.js 项目。
- 安装 Express:
在项目目录中,运行以下命令来安装 Express:
npm install express
3. 安装 MySQL:
接下来,安装 MySQL Node.js 客户端:
npm install mysql
4. 安装 fs-extra:
然后,安装 fs-extra,它是一个扩展了内置 fs 模块的库:
npm install fs-extra
5. 创建 Express 服务器:
在项目根目录下创建一个名为 index.js 的文件,并添加以下代码来设置一个基本的 Express 服务器:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
6. 运行服务器:
在终端中,运行以下命令来启动你的 Express 服务器:
node index.js
打开浏览器并访问 http://localhost:3000,你应该会看到 "Hello World!"。
- 连接 MySQL 数据库:
你需要有一个运行中的 MySQL 服务器。在你的 Express 应用中,你可以使用以下代码片段来连接到 MySQL 数据库:
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});
connection.connect((err) => {
if (err) throw err;
console.log('Connected to MySQL Server!');
});
确保替换 your_username、your_password 和 your_database_name 为你的 MySQL 服务器的实际凭据和数据库名称。
- 使用 fs-extra:
你可以在需要时使用fs-extra来执行文件系统操作。例如,要复制文件,你可以:
const fse = require('fs-extra');
// Copy file
fse.copy('source.txt', 'destination.txt')
.then(() => console.log('File copied successfully!'))
.catch(err => console.error(err));
9. 添加脚本到 package.json:
为了方便,你可以在 package.json 文件中添加一个启动脚本:
"scripts": {
"start": "node index.js"
},
现在你可以使用 npm start 来启动你的服务器。
请注意,这些步骤提供了一个基本的 Express 应用程序设置。在实际开发中,你可能需要添加更多的配置,例如中间件、路由、错误处理等。此外,确保在处理数据库时遵循最佳实践,例如使用连接池和避免 SQL 注入攻击。
二、然后在项目的根目录创建一个Dockerfile文件
三、编写Dockerfile文件
# node版本
FROM node:10-alpine
# node的app.js文件
WORKDIR /app
# 复制npm的依赖文件
COPY package*.json ./
# 项目安装依赖
RUN npm install
# 复制项目的文件
COPY . .
# node服务端口
EXPOSE 8080
# 启动项目
CMD ["npm", "start"]
四、打包镜像
//my-node-app镜像名字
docker build -t my-node-app .
五、运行镜像
docker run -p 8080:8080 my-node-app
六、docker ps -a 查看本地的镜像id:41536440afe3
七、导出镜像,部署到服务器上
docker export 41536440afe3 > hkzf_server.tar