我正在尝试将NodeJS和Socket.io用于我公司产品中两台设备(PC和智能手机)之间的实时通信。
基本上我想要实现的是当有人在文件上进行某些更改时向所有在线用户发送通知。
保存更新的所有基本功能都已存在,因此,当存储和计算所有内容时,我向我的节点服务器发送POST请求,说明某些内容发生了变化,他需要通知用户。
现在的问题是,当我想更改NodeJS脚本中的一些代码时,只要我单独工作,我就可以通过FTP上传新文件并重新启动pm2服务,但是当我的同事开始工作时和我一起谈论这个故事,我们在合并我们的变化时会遇到问题而不会相互重叠。
启动本地服务器也是不可能的,因为我们需要当前服务器和节点机器之间的连接,因为我们的服务器在线,所以无法访问我们的本地主机。
团队是否有办法在同一个节点服务器中协同工作但彼此不重叠?
答案 0 :(得分:0)
使用其他选项而不是FTP来实施更改。例如:
您可以在经过身份验证或未经身份验证的模式下使用webdav-fs:
// Using authentication:
var wfs = require("webdav-fs")(
"http://example.com/webdav/",
"username",
"password"
);
wfs.readdir("/Work", function(err, contents) {
if (!err) {
console.log("Dir contents:", contents);
} else {
console.log("Error:", err.message);
}
});
putFileContents(remotePath,format,data [,options]) 将一些数据放在remotePath的远程文件中,来自Buffer或String。 data是Buffer或String。 options有一个名为format的属性,可以是“binary”(默认)或“text”。
var fs = require("fs");
var imageData = fs.readFileSync("someImage.jpg");
client
.putFileContents("/folder/myImage.jpg", imageData, { format: "binary" })
.catch(function(err) {
console.error(err);
});
使用回调通知您的团队,或通过回调锁定文件。
<强>参考强>