用于Linux服务器编程/作为脚本语言的nodejs

nodejs for linux server programming / as scripting language

本文关键字:脚本 语言 nodejs Linux 服务器 编程 用于      更新时间:2023-09-26

我正在编写一个脚本,用于为我的应用程序配置新用户。脚本将编写在节点中,因为它的任务之一是连接到mysql以在应用程序的数据库中创建新用户。

我尝试使用 spawn-sync 库(令人惊讶的是似乎也是异步的)来执行 bash 命令,但每一个我都需要执行以下操作:

var spawnSync = require('spawn-sync');
var user_name = process.argv[2];
new Promise((resolve)=>{
    var result = spawnSync('useradd',[user_name]);
    if (result.status !== 0) {
        process.stderr.write(result.stderr);
        process.exit(result.status);
    } else {
        process.stdout.write(result.stdout);
        process.stderr.write(result.stderr);
    }
    resolve()
}).then(new Promise(function(resolve){
    // execute another part of script
    resolve()
})

有没有更好的方法?每当我尝试查找某些内容时,网络上的所有教程似乎都只在涉及nodejs上下文时谈论express。

或者,也许您不鼓励使用 nodejs 用作脚本服务器端语言?

如果你想与进程同步交互,Node.js 通过 child_process.execSync() 内置了该功能。请注意,如果子进程具有非零退出代码,它将抛出(因此您需要使用 try/catch 包装它)。

try {
  var cmd = ['useradd', user_name].join(' ');
  var stdout = require('child_process').execSync(cmd);
  console.log(stdout);
}
catch (e) {
  console.log(e);
}