LINUX.ORG.RU

NodeJS + Rails не опять, а снова или возможно впервые

 ,


0

1

Пытаюсь заставить рабоать nodeJs внутри rails посредством EXECJs.

Руби часть index.html.erb выглядит как-то так.

(Runtime NodeJS v8)

<% require "execjs"
require 'open-uri'
%>
<%= ExecJS.runtime.name%>
<%

source = open("........./public/script_exec.js").read

context = ExecJS.compile(source)


%>

<% context.call('turbo_exec');%>

НодЖС функция начинается как то так

function turbo_exec(){
  var process = require('child_process');...

Что проверил и сделал. *в $PATH лежат bin-ы nodejs (usr/bin) *в boot.rb поставил [JS]ENV['EXECJS_RUNTIME'] = 'Node'

Ну и собственно не работает и ошибка :

TypeError: require is not a function

В nodeJS полный ноль. Мб нужно как то обьявить require я вообщем незнаю. Спасибо если кто поможет советом :thanks:

Пытаюсь заставить рабоать nodeJs внутри rails посредством EXECJs.

ЕxecJS для этого не предназначен:

Why can't I use CommonJS require() inside ExecJS?

ExecJS provides a lowest common denominator interface to any JavaScript runtime. Use ExecJS when it doesn't matter which JavaScript interpreter your code runs in. If you want to access the Node API, you should check another library like commonjs.rb designed to provide a consistent interface.

Anatolik ★★
()

Спасибо если кто поможет советом :thanks:

Здесь сложно подсказать что-то полезное, потому что неизвестно, какую задачу вы решаете.

Anatolik ★★
()
Ответ на: комментарий от Anatolik

Да мне хватило того что для этого нужно commonjs.rb , Просто неувидел что на гите прям так четко про require написано , причем пример использования читал чуть выше хех

xionovermazes
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.