从nodejs运行rails控制台命令

yzuktlbb  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(341)

是否可以从nodejs生成rails控制台,然后在rails控制台中执行脚本?

const { spawn } = require('child_process');

const child_process = spawn('rails c');

child_process.stdout.on('data', function (data) {
  console.log('stdout', data.toString());
});

child_process.stderr.on('data', function (data) {
  console.log('stderr', data);
});

child_process.on('close', function (code) {
  console.log('close', code);
});

打开控制台时,我想在rails控制台中执行此脚本

user_id = 1624522827
Sharding.get_shard(user_id) do
  account = UserList::User.find(user_id).make_user
end

如何在nodejs中实现这一点。我的目的是创建一个在rails控制台中运行脚本的cli。

d7v8vwbk

d7v8vwbk1#

我想你想要的是 rails runner 而不是控制台。给它传递一行ruby代码或文件名。它将在rails环境中运行,而不仅仅是ruby irb环境。

2admgd59

2admgd592#

ruby控制台是为人类设计的。我不会尝试将输入输入到它中。
更好的方法是使用rake任务,然后用 bundle exec rake task:subtask rake任务指南
所有代码都应该放在rake任务中,然后您可以仅使用文件路径从nodejs调用它。

相关问题