


Méthodes et exemples d'appel de commandes système, de scripts Shell et de scripts Python dans Nodejs_node.js
Chaque langage a ses propres avantages. Lorsqu'il est combiné les uns avec les autres, le programme s'exécutera plus efficacement ou selon la méthode d'implémentation la plus simple, utilise des processus enfants pour appeler des commandes système ou des fichiers et des documents. nodejs.org/api/child_process.html. Le processus enfant NodeJS fournit des interfaces importantes pour interagir avec le système. Ses principales API sont : des interfaces pour l'entrée standard, la sortie standard et la sortie d'erreur standard.
Le processus enfant NodeJS fournit une interface importante pour interagir avec le système. Ses principales API sont :
Interfaces pour entrée standard, sortie standard et sortie d'erreur standard
child.stdin obtient une entrée standard
child.stdout obtient une sortie standard
child.stderr obtient une sortie d'erreur standard
Récupérez le PID du processus enfant : child.pid
Fournit une méthode pour générer un processus enfant : child_process.spawn(cmd, args=[], [options])
Fournit une méthode pour exécuter directement les commandes système : child_process.exec(cmd, [options], callback)
Fournit une méthode pour appeler les fichiers de script : child_process.execFile(file, [args], [options], [callback])
Fournit une méthode pour tuer le processus : child.kill(signal='SIGTERM')
Prenons un exemple pour le ressentir, c'est très intéressant, haha~~
1. Utilisez des processus enfants pour appeler des commandes système (obtenir l'utilisation de la mémoire système)
Créez un nouveau fichier nodejs nommé cmd_spawn.js avec le code suivant :
free = spawn('free', ['-m']);
// Capturez la sortie standard et imprimez-la sur la console
free.stdout.on('data', function (data) {
console.log('sortie standard:n' données);
});
free.stderr.on('data', function (data) {
console.log('sortie d'erreur standard : n' données);
});
free.on('exit', function (code, signal) {
console.log('processus enfant eixt,exit:' code);
});
2. Exécuter la commande système (child_process.exec())
J'utilise encore celui-ci très souvent, et ses fonctions me semblent un peu plus puissantes que celles ci-dessus. Par exemple, j'aime faire attention à la météo. Maintenant, je veux recourber l'interface météo pour renvoyer les données au format json. Peut-être que je dois effectuer certaines opérations dessus, donc je vais l'imprimer et ne pas l'utiliser.
Créez un nouveau fichier nodejs nommé cmd_exec.js :
var cmdStr = 'curl http://www.weather.com.cn/data/sk/101010100.html';
exec(cmdStr, fonction(err,stdout,stderr){
Si (erreur) {
console.log('obtenir l'erreur de l'API météo :' stderr);
} autre {
/*
Le contenu de cette sortie standard est ce que j'ai décrit ci-dessus :
{"weatherinfo":{"city":"Pékin","cityid":"101010100","temp":"3","WD":"Vent du Nord-Ouest","WS":"Niveau 3","SD ":"23%","WSE":"3","time":"21:20","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"Pas encore de diffusion en direct " ,"qy":"1019"}}
*/
var data = JSON.parse(stdout);
console.log(données);
>
});
3. Appelez le script shell en passant les paramètres (child_process.execFile())
Cela nécessite d'abord de préparer un script shell. Par exemple, si je souhaite me connecter à un serveur pour changer son mot de passe, je dois fournir l'adresse IP, l'utilisateur, le nouveau mot de passe, l'ancien mot de passe et créer un nouveau fichier de script shell change_password. .sh :
#!/bin/sh
IP=""
NOM=""
MOT DE PASSE=""
NOUVEAU MOT DE PASSE=""
while getopts "H:U:P:N:" arg #Les deux points après l'option indiquent que l'option nécessite des paramètres
faire
cas $arg dans
H)
IP=$OPTARG
;;
U)
NOM=$OPTARG
;;
P)
MOT DE PASSE=$OPTARG
;;
N)
NEWPASSWORD=$OPTARG
;;
?) #Quand certaines options ne sont pas reconnues, l'argument est ?
echo "Contient des paramètres inconnus"
sortie 1
;;
esac
fait
#Obtenez d'abord l'ID utilisateur
USERID=`/usr/bin/ipmitool -I lanplus -H $IP -U $NAME -P $PASSWORD liste d'utilisateurs | grep root |
# echo $USERID
#Changer le mot de passe en fonction de l'ID utilisateur
/usr/bin/ipmitool -I lanplus -H $IP -U $NAME -P $PASSWORD mot de passe défini par l'utilisateur $USERID $NEWPASSWORD
var ip = '1.1.1.1';
var nom d'utilisateur = 'test';
var mot de passe = 'pwd';
var nouveau mot de passe = 'nouveau mot de passe';
callfile.execFile('change_password.sh',['-H', ip, '-U', nom d'utilisateur, '-P', mot de passe, '-N', nouveau mot de passe],null,fonction (err, stdout , stderr) {
rappel(err, stdout, stderr);
});
Après avoir lu ce qui précède, il n'y a en fait aucun suspense quant à l'appel du script python. Il s'agit essentiellement d'exécuter la commande.
4. Appelez le script python (le script python lui-même passe des paramètres)
Insérez ici une digression. Le paragraphe suivant est une brève explication des paramètres passés en python :
'''
Module requis : sys
Nombre de paramètres : len(sys.argv)
Nom du script : sys.argv[0]
Paramètre 1 : sys.argv[1]
Paramètre 2 : sys.argv[2]
'''
importer le système
imprimez votre "nom du script :", sys.argv[0]
for i in range(1, len(sys.argv)): #Les paramètres ici commencent à partir de 1
Imprimez votre "paramètre", i, sys.argv[i]
Résultat de l'exécution :
Je vais également préparer un fichier nodejs pour appeler ce script python (j'ai apporté des modifications à py_test.py, voir ci-dessous), 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~~

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Node.js est un environnement d'exécution JavaScript côté serveur, tandis que Vue.js est un framework JavaScript côté client permettant de créer des interfaces utilisateur interactives. Node.js est utilisé pour le développement côté serveur, comme le développement d'API de service back-end et le traitement des données, tandis que Vue.js est utilisé pour le développement côté client, comme les applications monopage et les interfaces utilisateur réactives.

Node.js peut être utilisé comme framework backend car il offre des fonctionnalités telles que des performances élevées, l'évolutivité, la prise en charge multiplateforme, un écosystème riche et une facilité de développement.

Pour vous connecter à une base de données MySQL, vous devez suivre ces étapes : Installez le pilote mysql2. Utilisez mysql2.createConnection() pour créer un objet de connexion contenant l'adresse de l'hôte, le port, le nom d'utilisateur, le mot de passe et le nom de la base de données. Utilisez connection.query() pour effectuer des requêtes. Enfin, utilisez connection.end() pour mettre fin à la connexion.

Les variables globales suivantes existent dans Node.js : Objet global : global Module principal : processus, console, nécessiter Variables d'environnement d'exécution : __dirname, __filename, __line, __column Constantes : undefined, null, NaN, Infinity, -Infinity

Il existe deux fichiers liés à npm dans le répertoire d'installation de Node.js : npm et npm.cmd. Les différences sont les suivantes : différentes extensions : npm est un fichier exécutable et npm.cmd est un raccourci de fenêtre de commande. Utilisateurs Windows : npm.cmd peut être utilisé à partir de l'invite de commande, npm ne peut être exécuté qu'à partir de la ligne de commande. Compatibilité : npm.cmd est spécifique aux systèmes Windows, npm est disponible multiplateforme. Recommandations d'utilisation : les utilisateurs Windows utilisent npm.cmd, les autres systèmes d'exploitation utilisent npm.

Les principales différences entre Node.js et Java résident dans la conception et les fonctionnalités : Piloté par les événements ou piloté par les threads : Node.js est piloté par les événements et Java est piloté par les threads. Monothread ou multithread : Node.js utilise une boucle d'événements monothread et Java utilise une architecture multithread. Environnement d'exécution : Node.js s'exécute sur le moteur JavaScript V8, tandis que Java s'exécute sur la JVM. Syntaxe : Node.js utilise la syntaxe JavaScript, tandis que Java utilise la syntaxe Java. Objectif : Node.js convient aux tâches gourmandes en E/S, tandis que Java convient aux applications de grande entreprise.

Oui, Node.js est un langage de développement backend. Il est utilisé pour le développement back-end, notamment la gestion de la logique métier côté serveur, la gestion des connexions à la base de données et la fourniture d'API.

Node.js et Java ont chacun leurs avantages et leurs inconvénients en matière de développement Web, et le choix dépend des exigences du projet. Node.js excelle dans les applications en temps réel, le développement rapide et l'architecture de microservices, tandis que Java excelle dans la prise en charge, les performances et la sécurité de niveau entreprise.
