


Methoden und Beispiele zum Aufrufen von Systembefehlen, Shell-Skripten und Python-Skripten in Nodejs_node.js
Jede Sprache hat ihre eigenen Vorteile. Wenn sie miteinander kombiniert werden, wird die Implementierungsmethode von Nodejs einfacher, um Systembefehle oder Dateien und Dokumente aufzurufen. nodejs.org/api/child_process.html. Der untergeordnete NodeJS-Prozess bietet wichtige Schnittstellen für die Interaktion mit dem System. Seine Haupt-APIs sind: Schnittstellen für Standardeingabe, Standardausgabe und Standardfehlerausgabe.
Der untergeordnete NodeJS-Prozess bietet eine wichtige Schnittstelle für die Interaktion mit dem System. Seine Haupt-APIs sind:
Schnittstellen für Standardeingabe, Standardausgabe und Standardfehlerausgabe
child.stdin erhält Standardeingabe
child.stdout erhält die Standardausgabe
child.stderr erhält eine Standardfehlerausgabe
Rufen Sie die PID des untergeordneten Prozesses ab: child.pid
Stellt eine Methode zum Generieren eines untergeordneten Prozesses bereit: child_process.spawn(cmd, args=[], [options])
Stellt eine Methode zum direkten Ausführen von Systembefehlen bereit: child_process.exec(cmd, [options], callback)
Stellt eine Methode zum Aufrufen von Skriptdateien bereit: child_process.execFile(file, [args], [options], [callback])
Stellt eine Methode zum Beenden des Prozesses bereit: child.kill(signal='SIGTERM')
Lassen Sie es uns anhand eines Beispiels nachfühlen, es ist sehr interessant, haha~~
1. Verwenden Sie untergeordnete Prozesse, um Systembefehle aufzurufen (Systemspeichernutzung zu ermitteln)
Erstellen Sie eine neue NodeJS-Datei mit dem Namen cmd_spawn.js mit dem folgenden Code:
free = spawn('free', ['-m']);
// Erfassen Sie die Standardausgabe und drucken Sie sie auf der Konsole
free.stdout.on('data', function (data) {
console.log('Standardausgabe:n' Daten);
});
free.stderr.on('data', function (data) {
console.log('Standardfehlerausgabe:n' Daten);
});
free.on('exit', function (code, signal) {
console.log('child Process eixt ,exit:' code);
});
2. Systembefehl ausführen (child_process.exec())
Ich benutze dieses Gerät immer noch sehr oft und seine Funktionen fühlen sich etwas leistungsfähiger an als die oben genannten. Ich achte zum Beispiel gerne auf das Wetter. Jetzt möchte ich die Wetterschnittstelle umwandeln, um Daten im JSON-Format zurückzugeben. Vielleicht muss ich einige Vorgänge daran ausführen, damit ich sie ausdrucke und nicht betreibe.
Erstellen Sie eine neue NodeJS-Datei mit dem Namen cmd_exec.js:
exec(cmdStr, function(err,stdout,stderr){
If(err) {
console.log('Wetter-API-Fehler abrufen:' stderr);
} sonst {
/*
Der Inhalt dieser Standardausgabe ist das, was ich oben dargelegt habe:
{"weatherinfo":{"city":Peking,"cityid":101010100, "temp": "3", "WD": "Nordwestwind", "WS": "Stufe 3", "SD ::23%,WSE:3,time:21:20,isRadar:1,Radar:JC_RADAR_AZ9010_JB,njd:Noch keine Live-Übertragung " ,"qy":"1019"}}
*/
var data = JSON.parse(stdout);
console.log(data);
}
});
Dazu muss ich zunächst ein Shell-Skript vorbereiten. Wenn ich beispielsweise eine Verbindung zu einem Server herstellen möchte, um dessen Passwort zu ändern, muss ich die IP, den Benutzer, das neue Passwort und das alte Passwort angeben und eine neue Shell-Skriptdatei „change_password“ erstellen .sh:
#!/bin/sh
IP=""
NAME=""
PASSWORT=""
NEWPASSWORD=""
while getopts "H:U:P:N:" arg #Der Doppelpunkt nach der Option zeigt an, dass die Option Parameter erfordert
tun
case $arg in
H)
IP=$OPTARG
;;
U)
NAME=$OPTARG
;;
P)
PASSWORD=$OPTARG
;;
N)
NEWPASSWORD=$OPTARG
;;
?) #Wenn es Optionen gibt, die nicht erkannt werden, lautet das Argument?
echo „Enthält unbekannte Parameter“
Ausgang 1
;;
esac
fertig
#Get userid first
USERID=`/usr/bin/ipmitool -I lanplus -H $IP -U $NAME -P $PASSWORD Benutzerliste |
# echo $USERID
#Passwort basierend auf Benutzer-ID ändern
/usr/bin/ipmitool -I lanplus -H $IP -U $NAME -P $PASSWORD vom Benutzer festgelegtes Passwort $USERID $NEWPASSWORD
var Benutzername = 'test';
var passwort = 'pwd';
var newpassword = 'newpwd';
callfile.execFile('change_password.sh',['-H', ip, '-U', username, '-P', password, '-N', newpassword],null,function (err, stdout , stderr) { callback(err, stdout, stderr);
});
Nachdem ich das oben Gesagte gelesen habe, besteht eigentlich kein Grund zur Spannung, das Python-Skript aufzurufen. Im Wesentlichen geht es darum, den Befehl auszuführen.
4. Rufen Sie das Python-Skript auf (das Python-Skript selbst übergibt Parameter)
Fügen Sie hier einen Exkurs ein. Der folgende Absatz ist eine kurze Erläuterung der in Python übergebenen Parameter:
Erforderliches Modul: sys
Anzahl der Parameter: len(sys.argv)
Skriptname: sys.argv[0]
Parameter 1: sys.argv[1]
Parameter 2: sys.argv[2]
'''
Importsystem
print u"script name:", sys.argv[0]
for i in range(1, len(sys.argv)): #Die Parameter hier beginnen bei 1
Drucken Sie u"parameter", i, sys.argv[i]
Laufergebnis:
Ich werde auch eine NodeJS-Datei vorbereiten, um dieses Python-Skript aufzurufen (ich habe Änderungen an py_test.py vorgenommen, siehe unten), file_python.js:
var exec = require('child_process').exec;
var arg1 = 'bonjour'
var arg2 = 'jzhou'
exec('python py_test.py ' arg1 ' ' arg2 ' ',function(erreur,stdout,stderr){
Si(stdout.length >1){
console.log('vous proposez args:',stdout);
} autre {
console.log('vous ne proposez pas d'arguments');
>
Si(erreur) {
console.info('stderr : 'stderr);
>
});
Le contenu de py_test.py est le suivant :
# -*-coding:utf-8 -*-
importer le système
imprimer sys.argv
Les résultats en cours d'exécution sont les suivants :
C'est toujours très bien, et j'ai réalisé un autre blog exquis pour 2014. Haha~~

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Node.js ist eine serverseitige JavaScript-Laufzeitumgebung, während Vue.js ein clientseitiges JavaScript-Framework zum Erstellen interaktiver Benutzeroberflächen ist. Node.js wird für die serverseitige Entwicklung verwendet, beispielsweise für die Entwicklung von Back-End-Service-APIs und die Datenverarbeitung, während Vue.js für die clientseitige Entwicklung verwendet wird, beispielsweise für Single-Page-Anwendungen und reaktionsfähige Benutzeroberflächen.

Node.js kann als Backend-Framework verwendet werden, da es Funktionen wie hohe Leistung, Skalierbarkeit, plattformübergreifende Unterstützung, ein umfangreiches Ökosystem und einfache Entwicklung bietet.

Um eine Verbindung zu einer MySQL-Datenbank herzustellen, müssen Sie die folgenden Schritte ausführen: Installieren Sie den MySQL2-Treiber. Verwenden Sie mysql2.createConnection(), um ein Verbindungsobjekt zu erstellen, das die Hostadresse, den Port, den Benutzernamen, das Passwort und den Datenbanknamen enthält. Verwenden Sie „connection.query()“, um Abfragen durchzuführen. Verwenden Sie abschließend Connection.end(), um die Verbindung zu beenden.

Es gibt zwei npm-bezogene Dateien im Node.js-Installationsverzeichnis: npm und npm.cmd. Die Unterschiede sind wie folgt: unterschiedliche Erweiterungen: npm ist eine ausführbare Datei und npm.cmd ist eine Befehlsfensterverknüpfung. Windows-Benutzer: npm.cmd kann über die Eingabeaufforderung verwendet werden, npm kann nur über die Befehlszeile ausgeführt werden. Kompatibilität: npm.cmd ist spezifisch für Windows-Systeme, npm ist plattformübergreifend verfügbar. Nutzungsempfehlungen: Windows-Benutzer verwenden npm.cmd, andere Betriebssysteme verwenden npm.

Die folgenden globalen Variablen sind in Node.js vorhanden: Globales Objekt: global Kernmodul: Prozess, Konsole, erforderlich Laufzeitumgebungsvariablen: __dirname, __filename, __line, __column Konstanten: undefiniert, null, NaN, Infinity, -Infinity

Die Hauptunterschiede zwischen Node.js und Java sind Design und Funktionen: Ereignisgesteuert vs. Thread-gesteuert: Node.js ist ereignisgesteuert und Java ist Thread-gesteuert. Single-Threaded vs. Multi-Threaded: Node.js verwendet eine Single-Threaded-Ereignisschleife und Java verwendet eine Multithread-Architektur. Laufzeitumgebung: Node.js läuft auf der V8-JavaScript-Engine, während Java auf der JVM läuft. Syntax: Node.js verwendet JavaScript-Syntax, während Java Java-Syntax verwendet. Zweck: Node.js eignet sich für I/O-intensive Aufgaben, während Java für große Unternehmensanwendungen geeignet ist.

Ja, Node.js ist eine Backend-Entwicklungssprache. Es wird für die Back-End-Entwicklung verwendet, einschließlich der Handhabung serverseitiger Geschäftslogik, der Verwaltung von Datenbankverbindungen und der Bereitstellung von APIs.

Serverbereitstellungsschritte für ein Node.js-Projekt: Bereiten Sie die Bereitstellungsumgebung vor: Erhalten Sie Serverzugriff, installieren Sie Node.js, richten Sie ein Git-Repository ein. Erstellen Sie die Anwendung: Verwenden Sie npm run build, um bereitstellbaren Code und Abhängigkeiten zu generieren. Code auf den Server hochladen: über Git oder File Transfer Protocol. Abhängigkeiten installieren: Stellen Sie eine SSH-Verbindung zum Server her und installieren Sie Anwendungsabhängigkeiten mit npm install. Starten Sie die Anwendung: Verwenden Sie einen Befehl wie node index.js, um die Anwendung zu starten, oder verwenden Sie einen Prozessmanager wie pm2. Konfigurieren Sie einen Reverse-Proxy (optional): Verwenden Sie einen Reverse-Proxy wie Nginx oder Apache, um den Datenverkehr an Ihre Anwendung weiterzuleiten
