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

时间:2016-03-09 14:11:12

标签: javascript node.js bash ubuntu server

我正在编写一个脚本,用于为我的应用程序配置新用户。 脚本将写入节点,因为其任务之一将连接到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上下文的表达。

或许你不鼓励使用nodejs作为脚本服务器端语言?

1 个答案:

答案 0 :(得分:0)

如果要同步与进程交互,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);
}