我正在编写一个脚本,用于为我的应用程序配置新用户。 脚本将写入节点,因为其任务之一将连接到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作为脚本服务器端语言?
答案 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);
}