2016-08-17 16 views
0

Я пытаюсь реализовать NodeJS и Socket.io для обмена в реальном времени между двумя устройствами (ПК & Smartphones) в моей компании.Лучший рабочий процесс NodeJS для разработки команды

В основном, чего я хочу достичь, отправляется уведомление всем пользователям онлайн, когда кто-то что-то меняет в файле.

Все основные функции для сохранения обновлений уже есть, и поэтому, когда все хранится и вычисляется, я отправляю запрос POST на мой сервер узла, говоря, что что-то изменилось, и ему необходимо уведомить пользователей.

Проблема в том, что, когда я хочу изменить код в сценариях NodeJS, пока я работаю один, я могу просто загрузить новые файлы через FTP и просто перезапустить службу pm2, но когда мои коллеги начнут работая со мной в этой истории, у нас будут проблемы слияния наших изменений, не перекрывая друг друга.

Запуск локального сервера также невозможен, потому что нам нужно соединение между нашим текущим сервером и узлом, и поскольку наш сервер находится в сети, он не может получить доступ к нашим локальным хостам.

Это способ, которым команда может работать вместе на одном сервере Node, но не перекрывая друг друга?

ответ

0

Внесите изменения, используя другой вариант, а не FTP. Например:

Вы можете использовать Webdav-фс в аутентифицирован или не прошедшие проверку подлинности режима:

// 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, формат данных [, опции]) Положите некоторые данные в удаленном файле в remotePath из буфера или строки. данные являются буфером или строкой. options имеет свойство, называемое форматом, который может быть «двоичным» (по умолчанию) или «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); 
    }); 

и использовать функции обратного вызова для уведомления вашей команды, или блокировать файлы с помощью обратного вызова.

Ссылки