Node.js 请教一个动态更新的问题
https://github.com/janishar/nodejs-backend-architecture-typescript 比如这个项目中, Install using Docker Compose [Recommended Method]
Clone this repo. Make a copy of .env.example file to .env. Make a copy of keys/private.pem.example file to keys/private.pem. Make a copy of keys/public.pem.example file to keys/public.pem. Make a copy of tests/.env.test.example file to tests/.env.test. Install Docker and Docker Compose. Find Instructions Here. Execute docker-compose up -d in terminal from the repo directory. You will be able to access the api from http://localhost:3000 If having any issue then make sure 3000 port is not occupied else provide a different port in .env file. If having any issue then make sure 27017 port is not occupied else provide a different port in .env file.
那我每次更新项目文件,我发现每次都得 docker rebuid 然后 restart 更新,有没有自动动态更新的方法
Node.js 请教一个动态更新的问题
你这要求已经超出 docker 的使用规范了吧
你是用 docker 还是 docker compose ?如果是 docker compose 并且是 v2 版的,可以用 docker compose alpha watch
命令。
如果是开发的话,或者不用 docker ,看它的 package.json 里有 watch 的 script ,可以直接用 npm run watch
来开发。
本地开发直接用宿主机的 nodejs 跑 nodemon 就好了
部属的时候才构建 docker 镜像然后推到服务器上。
用的 docker compose ,谢谢我试试 docker compose alpha watch 命令
对 node 不是太熟,所以想怎么省事方便怎么来
你这已经是要求对文件监控了
方便就是 nodemon
https://github.com/virtual-less/vaas-framework
我这个框架其实就实现了动态更新,有点类似 PHP
在Node.js中实现动态更新通常涉及实时数据处理和更新,可以通过WebSocket、HTTP长轮询等技术来实现。下面是一个使用WebSocket的简单示例,它展示了如何动态更新数据。
首先,确保你已经安装了ws
库,这是一个用于Node.js的WebSocket服务器实现。你可以通过npm安装它:
npm install ws
然后,创建一个简单的WebSocket服务器:
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', (ws) => {
console.log('Client connected');
// 模拟数据更新
setInterval(() => {
const data = {
time: new Date().toLocaleTimeString(),
message: 'This is a dynamic update!'
};
ws.send(JSON.stringify(data));
}, 1000);
ws.on('message', (message) => {
console.log(`Received: ${message}`);
});
ws.on('close', () => {
console.log('Client disconnected');
});
});
console.log('WebSocket server is running on ws://localhost:8080');
客户端可以使用原生的WebSocket API来连接这个服务器并接收动态更新:
const ws = new WebSocket('ws://localhost:8080');
ws.onopen = () => {
console.log('Connected to WebSocket server');
};
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log(`Time: ${data.time}, Message: ${data.message}`);
};
ws.onclose = () => {
console.log('Disconnected from WebSocket server');
};
这个示例展示了如何设置一个简单的WebSocket服务器来发送动态更新的数据,以及一个客户端来接收这些数据。