How to Run a Shell Commands in Node.js
Something that seems to surprise people is that Node.js allows you to run shell commands within your application, giving you a way to interact with the system's shell.
This capability comes from the child_process module, which provides various methods to spawn child processes.
Here's how:
Using exec
The exec method is perfect for executing simple shell commands where you want to handle the output all at once.
It runs the command inside a shell, buffers the output, and delivers it back to your application after the command finishes executing.
It's really easy to use. Here's the simplest example:
const { exec } = require("node:child_process");
exec('echo "Hello, world!"');
Now, you might need to use the output from something like this to make it useful.
Thankfully, you can pass a callback to do this:
const { exec } = require("node:child_process");
exec('echo "Hello, world!"', (error, stdout, stderr) => {
if (error) {
console.error(`Error: ${error}`);
return;
}
console.log(`Output: ${stdout}`); // "Output: Hello, world!"
});
And just like that, you are running shell commands. ✌️
