Το Node.js είναι ένα περιβάλλον εκτέλεσης JavaScript βασισμένο στη μηχανή V8 του Chrome που εκτελεί ασύγχρονο κώδικα καθοδηγούμενο από συμβάντα.
Καθολικές Μεταβλητές
Συνήθεις καθολικές μεταβλητές σε επίπεδο ενότητας στο CommonJS:
__filename; // Απόλυτη διαδρομή αρχείου της τρέχουσας ενότητας
__dirname; // Απόλυτη διαδρομή φακέλου της τρέχουσας ενότητας
Θυγατρικές Διεργασίες (Child Processes)
child_process.exec()
Αποθηκεύει προσωρινά την έξοδο και περνά τα stdout/stderr σε επανάκληση (ιδανικό για μικρά σενάρια):
const { exec } = require('child_process');
exec('ls -la | grep .js', (error, stdout, stderr) => {
if (error) {
console.error(`Execution error: ${error.message}`);
return;
}
console.log(`Output: ${stdout}`);
});
child_process.spawn()
Μεταδίδει δεδομένα διεργασίας χωρίς προσωρινή αποθήκευση (ιδανικό για μακροχρόνιες διεργασίες):
const { spawn } = require('child_process');
// Κληρονόμηση stdin/stdout/stderr απευθείας στο τερματικό
const child = spawn('npm', ['test'], { stdio: 'inherit' });
child.on('error', (err) => {
if (err.code === 'ENOENT') console.error('Το εκτελέσιμο αρχείο δεν βρέθηκε');
if (err.code === 'EACCES') console.error('Δεν επιτρέπεται η πρόσβαση');
});
child.on('exit', (code, signal) => {
console.log(`Η διεργασία τερματίστηκε με κωδικό ${code}`);
});
Μορφοποίηση και Επιθεώρηση (util.inspect)
const util = require('util');
// Επιθεώρηση σύνθετων αντικειμένων σε βάθος με επισήμανση σύνταξης
const output = util.inspect(complexObject, {
showHidden: false,
depth: null,
colors: true
});
process.stdout.write(output + '\n');