Nodejs erstellt ein Tool zur Dokumentsynchronisierung zur automatischen Synchronisierung mit dem Gitee-Implementierungscode

Nodejs erstellt ein Tool zur Dokumentsynchronisierung zur automatischen Synchronisierung mit dem Gitee-Implementierungscode

Ursprüngliche Absicht

Der Grund für die Entwicklung dieses Tools besteht darin, dass ich meine tägliche Arbeit oder mein Leben jederzeit aufzeichnen möchte, wenn ich den Computer benutze. Normalerweise reicht es, es kurz aufzuzeichnen. Auf diese Weise kann ich die Aufzeichnungen gleichzeitig zu Hause und am Arbeitsplatz einsehen.

Auf diese Weise können Sie sich beim späteren Organisieren an bestimmte Dinge erinnern, wenn Sie einige Schlüsselwörter sehen. Einige davon können auch als Entwurf verwendet werden, um sie später in einem Artikel zu organisieren. Auf diese Weise kann der Artikel einen Anfang und ein Ende haben. Andernfalls ist es sehr schädlich für das Schreiben eines Artikels, wenn Sie einfach sagen, was Ihnen einfällt.

Zuerst habe ich die manuelle Synchronisierung verwendet, fand das aber problematisch und habe daher einfach eine Batchdatei verwendet, um alles auf einmal zu synchronisieren.

git ziehen

git add.

git commit -m "synchronisieren"

git push

Git-Status

@echo aus

Pause

Es gibt jedoch noch einige Nachteile:

1. Manchmal vergesse ich die Synchronisierung durchzuführen, insbesondere wenn ich von der Arbeit komme und den Computer direkt ausschalte.

2. Wenn Sie die Synchronisierung am Anfang vergessen, treten später Git-Konflikte auf. Die Erfahrung war nicht sehr gut.

Programme schreiben

Nodejs und Git müssen standardmäßig auf Ihrem Computer installiert sein.

Denn später habe ich mir die Zeit genommen, ein kleines Programm zu schreiben. Solange Sie das Programm im Hintergrund ausführen, werden die Dokumente von Zeit zu Zeit automatisch synchronisiert.

Der geänderte lokale Inhalt wird automatisch mit dem Git-Repository synchronisiert. Nachdem der Inhalt des Git-Repositorys geändert wurde, wird der neueste Inhalt automatisch abgerufen und mit dem lokalen Repository synchronisiert. Dadurch wird sichergestellt, dass das Remote-Repository und das lokale Repository auf dem neuesten Stand sind und der Inhalt der beiden Computer direkt synchronisiert wird.

Sehen wir uns an, wie es mit Node.js implementiert wird:

Zuerst benötigen wir ein Git-Repository zum Speichern der Daten.

Gehen Sie einfach zu gitee.com und beantragen Sie die Eröffnung eines Lagers. Holen Sie sich nach der Erstellung die Adresse des Remote-Warehouses und kopieren Sie sie zur späteren Verwendung.

Erstellen Sie einen lokalen Ordner zum Synchronisieren von Dokumentdaten.

Führen Sie npm init -y in der Datei aus, um package.json zu erstellen

So binden Sie ein Remote-Repository:

git init #Initialisiere das Lagergit remote add origin [Adresse deines Lagers] 
Git Push-Ursprung 
git push --set-upstream origin master #Erste Synchronisation des Warehouse

Danach können Sie das Tool direkt ausführen.

Fügen Sie dem Ordner eine neue Datei index.js hinzu

Installieren Sie abhängige Pakete im Ordner

Garn fügt untergeordneten Prozess hinzu
Garn-Add-Iconv-Lite
Garn hinzufügen Moment

Schreiben Sie den Code in index.js:

const untergeordneter Prozess = erforderlich("untergeordneter Prozess");
const iconv = erfordern("iconv-lite");
const moment = erfordern("moment");

Konstantenkodierung = "cp936";
const binaryEncoding = "binär";

//Führen Sie eine Zeile des cmd-Befehls aus. Funktion cmd(text) {
  returniere neues Promise((lösen, ablehnen) => {
    untergeordneter_Prozess.exec(
      Text,
      { Kodierung: Binärkodierung },
      (err = "", stdout = "", stderr) => {
        wenn (Fehler) {
          lösen(fehler);
          zurückkehren;
        }
        auflösen (iconv.decode (Buffer.from (stdout, binaryEncoding), Kodierung));
      }
    );
  });
}

//cmd Ausführungsreihenfolge async function run() {
  const Zeit = Moment ().Format ("JJJJ-MM-TT HH:mm:ss");
  let status = warte auf cmd("git status");
  Wenn (
    status.includes(
      „kein Git-Repository (oder eines der übergeordneten Verzeichnisse): .git“
    )
  ) {
    //Das Verzeichnis ist nicht an die Git-Adresse gebunden console.log("Das Verzeichnis ist nicht an die Git-Adresse gebunden");
  } anders {
    //An Git gebunden
    //Ziehen const pull = await cmd("git pull");
    Wenn (
      !pull.includes("Bereits auf dem neuesten Stand") &&
      !pull.includes("Bereits auf dem neuesten Stand")
    ) {
      // Die neuesten Daten herunterladen console.log(`Die neuesten Daten herunterladen: ${time}`);
    }
    //Status status = warte auf cmd("git status");
    wenn (status.includes('(verwende "git add"')) {
      //Lokaler Inhalt wurde geändert und muss übermittelt werden. await cmd("git add .");
      warte auf cmd('git commit -m "sync"');
      warte auf cmd("git push");
      console.log(`Synchronisierung erfolgreich: ${time}`);
    }
  }
}

//Alle 30 Sekunden ausführen setInterval(() => {
  laufen();
}, 1000 * 30);
laufen();

Dies funktioniert nicht, da wir Dateien im angegebenen Verzeichnis und nicht im aktuellen Verzeichnis synchronisieren möchten. Daher müssen wir es in eine EXE-Datei packen und in den zu synchronisierenden Ordner legen, um das angegebene Verzeichnis zu synchronisieren.

Zuerst installieren wir global ein Abhängigkeitspaket: pkg

npm install -g pkg

Führen Sie dann im Tool-Verzeichnis Folgendes aus:

pkg -t win index.js

Sie können das Node.JS-Projekt in ein unabhängiges EXE-Programm packen und das EXE-Programm dann in das Verzeichnis legen, das eine Git-Synchronisierung benötigt.

Um diese EXE-Datei nicht mit dem Lager zu synchronisieren, müssen wir diese Datei außerdem ausschließen

Legen Sie also eine .gitignore-Datei in das synchronisierte Verzeichnis und fügen Sie eine Zeile hinzu, um die EXE-Datei zu entfernen

Diese gepackte Datei: http://xiazai.jb51.net/202112/yuanma/indexdat_jb51.rar

Diese Konfigurationsdatei: http://xiazai.jb51.net/202112/yuanma/gitignore_jb51.rar

Damit das Programm direkt nach dem Einschalten des Computers gestartet werden kann, legen wir das Programm in den Startpunkt

Öffnen Sie den Ordner, fügen Sie diesen Pfad in den Ordner ein und drücken Sie die Eingabetaste

%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Startmenü\Programme\Autostart

Wir legen die Verknüpfung dieser Datei in das Startelement ein, sodass die Synchronisierung beim Einschalten des Computers durchgeführt wird und so eine kontinuierliche Synchronisierung erreicht wird. Alle 30 Sekunden wird geprüft, ob es auf dem neuesten Stand ist.

Dies ist das Ende dieses Artikels darüber, wie man ein Dokumentsynchronisierungstool in nodejs erstellt, um automatisch mit gitee zu synchronisieren. Weitere verwandte Inhalte zum Dokumentsynchronisierungstool nodejs finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder durchsuchen Sie die folgenden verwandten Artikel weiter. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Idee zur Implementierung eines Word-Dokumentparsers in nodejs
  • Nodejs (Officegen) + Vue (Axios)-Methode zum Exportieren von Word-Dokumenten auf dem Client
  • nodejs npm package.json Chinesische Dokumentation

<<:  So schreiben Sie Objekte und Parameter, um Flash in Firefox abzuspielen

>>:  MySQL-Transaktionsanalyse

Artikel empfehlen

Zusammenfassung der Wissenspunkte zum CSS-Frontend (unbedingt lesen)

1. Das Konzept von CSS: (Cascading Style Sheet) V...

Prinzip und Implementierung der parallelen Replikation von MySQL5.7

Jeder, der ein wenig über Datenoperationen und -w...

Allgemeine Betriebsbefehle von MySQL im Linux-System

Aufschlag: # chkconfig --list Alle Systemdienste ...

So deaktivieren Sie die Eslint-Erkennung in Vue (mehrere Methoden)

Inhaltsverzeichnis 1. Problembeschreibung 2. Prob...

So implementieren Sie eine Paging-Abfrage in MySQL

SQL-Paging-Abfrage:Hintergrund Im System des Unte...

Detaillierte Erläuterung der Wissenspunkte zur asynchronen Programmierung in nodejs

Einführung Weil JavaScript standardmäßig ein Thre...

So löschen Sie die Hintergrundfarbe des A-Tags, wenn in H5 darauf geklickt wird

1. Die blaue Farbe des Tags wird aufgehoben, wenn...

Erfahren Sie, wie Sie den JVM-Speicher von Tomcat über JConsoler überwachen

Inhaltsverzeichnis 1. So überwachen Sie Tomcat 2....

jQuery implementiert Akkordeoneffekte

Dieser Artikel gibt Ihnen den spezifischen Code v...

Ein kurzer Vortrag über die parasitäre Kompositionsvererbung in JavaScript

Vererbung von Kompositionen Kombinationsvererbung...

Detaillierte Erklärung des Docker Compose-Orchestrierungstools

Docker Compose Docker Compose ist ein Tool zum De...