2016-08-17 4 views
0

J'essaye d'implémenter NodeJS et Socket.io pour la communication en temps réel entre deux appareils (PC & Smartphones) dans mon produit d'entreprise.Meilleur workflow NodeJS pour le développement d'équipe

Fondamentalement, ce que je veux accomplir est d'envoyer une notification à tous les utilisateurs en ligne quand quelqu'un change quelque chose sur un fichier. Toutes les fonctionnalités de base pour sauvegarder les mises à jour sont déjà là et ainsi, quand tout est stocké et calculé, j'envoie une requête POST à ​​mon serveur Node en disant que quelque chose a changé et qu'il doit en aviser les utilisateurs. Le problème maintenant est que quand je veux changer du code dans les scripts NodeJS, tant que je travaille seul, je peux simplement télécharger les nouveaux fichiers via FTP et redémarrer le service pm2, mais quand mes collègues vont commencer En travaillant avec moi sur cette histoire, nous aurons des problèmes à fusionner nos changements sans nous chevaucher.

Le lancement d'un serveur local est également impossible car nous avons besoin de la connexion entre notre serveur actuel et la machine de noeud et puisque notre serveur est en ligne, il ne peut pas accéder à nos hôtes locaux.

Est-ce qu'il y a un moyen pour une équipe de travailler ensemble dans le même serveur de nœuds mais sans se chevaucher?

Répondre

0

Implémentez les modifications en utilisant une autre option plutôt que FTP. Par exemple:

Vous pouvez utiliser webdav-fs dans authentifié ou en mode non authentifié:

// 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, le format, les données [options]) Mettez certaines données dans un fichier distant à remotePath à partir d'un tampon ou d'une chaîne. data est un tampon ou une chaîne. options a une propriété appelée format qui peut être "binaire" (par défaut) ou "texte".

var fs = require("fs"); 

var imageData = fs.readFileSync("someImage.jpg"); 

client 
    .putFileContents("/folder/myImage.jpg", imageData, { format: "binary" }) 
    .catch(function(err) { 
     console.error(err); 
    }); 

Et utiliser les callbacks pour informer votre équipe, ou verrouiller les fichiers via la fonction de rappel.

Références