2013-08-22 5 views
1

Я очень новичок с nodejs, я пытаюсь запустить его:nodejs ошибка: икру ENOENT

я получаю:

events.js:72 
     throw er; // Unhandled 'error' event 
      ^
Error: spawn ENOENT 
    at errnoException (child_process.js:980:11) 
    at Process.ChildProcess._handle.onexit (child_process.js:771:34) 

Как я могу решить?


Может быть проблема в этом коде:

/** 

*/ 
/*jslint vars: true, plusplus: true, devel: true, nomen: true, indent: 4, maxerr: 50 */ 
/*global define, require, module, process */ 

var childprocess = require("child_process"), 
    util = require("util"), 
    fs = require("fs"); 
var procWrapper = require("./processwrapper"); 
var spawn = childprocess.spawn; 
module.exports = function() { 
    "use strict"; 
    var pvs = procWrapper(); 
    var o         = {}, 
     output        = [], 
     readyString       = "<PVSio>", 
     wordsIgnored      = ["", "==>", readyString], 
     restarting       = false, 
     sourceCode, 
     filename, 
     processReady      = false, 
     pvsio, 
     workspaceDir      = process.cwd() + "/public/"; 
    /** 
    * get or set the workspace dir. this is the base directory of the pvs source code 
    * @param {String} dir 
    * @return {String} the current workspace directory 
    */ 
    o.workspaceDir = function (dir) { 
     if (dir) {util.log("OK"); 

      dir = dir.substr(-1) !== "/" ? (dir + "/") : dir; 
      workspaceDir = dir; 
    util.log("OOO"); 
      return o; 
     } 
util.log("IIII"); 
     return workspaceDir; 
    }; 

    /** 
    * starts the pvs process with the given sourcefile 
    * @param {String} filename source file to load with pvsio 
    * @param {function({type:string, data:array})} callback function to call when any data is received in the stdout 
    * @param {function} callback to call when processis ready 
    */ 
    o.start = function (file, callback, processReadyCallback) { 
     filename = o.workspaceDir() + file; 
     function onDataReceived(data) { 
      var lines = data.split("\n").map(function (d) { 
       return d.trim(); 
      }); 
      var lastLine = lines[lines.length - 1]; 
      //copy lines into the output list ignoring the exit string, the startoutput string '==>' 
      //and any blank lines 
      output = output.concat(lines.filter(function (d) { 
       return wordsIgnored.indexOf(d) < 0; 
      })); 

      if (processReady && lastLine.indexOf(readyString) > -1) { 
       var outString = output.join("").replace(/,/g, ", ").replace(/\s+\:\=/g, ":=").replace(/\:\=\s+/g, ":="); 
       //This is a hack to remove garbage collection messages from the output string before we send to the client 
       var croppedString = outString.substring(0, outString.indexOf("(#")); 
       outString = outString.substring(outString.indexOf("(#")); 
       util.log(outString); 
       callback({type: "pvsoutput", data: [outString]}); 
       //clear the output 
       output = []; 
      } else if (lastLine.indexOf(readyString) > -1) { 
       //last line of the output is the ready string 
       processReadyCallback({type: "processReady", data: output}); 
       processReady = true; 
       output = []; 
      } 
     } 

     function onProcessExited(code) { 
      processReady = false; 
      var msg = "pvsio process exited with code " + code; 
      util.log(msg); 
      callback({type: "processExited", data: msg, code: code}); 
     } 

     pvs.start({processName: "pvsio", args: [filename], 
      onDataReceived: onDataReceived, 
      onProcessExited: onProcessExited}); 

     util.log("pvsio process started with file " + filename + "; process working directory is :" + o.workspaceDir()); 
util.log("OK"); 

     return o; 
    }; 

    /** 
    * sends a command to the pvsio process. This method returns immediately. The result of the command 
    * will be by the 'on data' event of the process standard output stream 
    * @param {string} command the command to send to pvsio 
    */ 
    o.sendCommand = function (command) { 
     util.log("sending command " + command + " to process"); 
     pvs.sendCommand(command); 
     return o; 
    }; 

    /** 
    * gets the source code pvs io is executing 
    * @param {string} path the path the to file whose content is to be fetched 
    * @param {function({type:string, data, message:string})} callback callback to execute when sourcecode has been loaded 
    * @returns {this} 
    */ 
    o.readFile = function (path, callback) { 
     pvs.readFile(path, callback); 
     return o; 
    }; 

    /** 
    * writes the file passed to the disk 
    * @param {fileName:string, fileContent: string} data Object representing the sourcecode to save 
    * @param {function ({type: string, data: {fileName: string}})} callback function to invoke when the file has been saved 
    */ 
    o.writeFile = function (path, data, callback) { 
     pvs.writeFile(path, data, callback); 
     return o; 
    }; 


    /** 
    * closes the pvsio process 
    * @param {string} signal The signal to send to the kill process. Default is 'SIGTERM' 
    */ 
    o.close = function (signal) { 
     signal = signal || 'SIGTERM'; 
     pvs.kill(signal); 
     return o; 
    }; 
    return o; 
}; 

После того как начали, я иду на локальный хост: 8082 и он выходит из строя! Вот и все. Прошу прощения, возможно, что эта небольшая информация вы не можете мне помочь.

+4

Показать код. На какой платформе вы работаете? – badsyntax

+1

Есть ли файл под названием package.json в вашем проекте? –

+1

Да есть: "{ \t "имя":" pvsio-веб " \t "автор": "Патрик Oladimeji <[email protected]>", \t "Описание":" А библиотека JavaScript для подключения и взаимодействовать с процессом pvsio использованием WebSockets " \t "версию": "0.0.13", \t "preferGlobal": "истинный", \t "Основные":" ./ pvssocketserver.js», \t "бин": "./ pvssocketserver.js", \t "зависимостей": { \t \t "WS": "0.4.x", \t \t "express": "3.х» \t}, \t "хранилище": { \t \t "типа": "мерзавец", \t \t "URL": "https://github.com/thehogfather/pvsio-web" \t}, \t "лицензия": "MIT", \t "двигатель": { \t \t "узел": "> = 0,8" \t} }» – Edge7

ответ

0
  • прочитанной readme
  • Попробуйте установить это с помощью npm install pvsio-web -g или (если/USR/местные/каталог принадлежит корень) sudo npm install pvsio-web -g
  • Вы должны устанавливаться ПВС и pvsio на вашем компьютере
  • Вы должны гарантировать, что pvsio доступен в качестве команды на вашем пути
1

Я получил ту же ошибку, после обновления много программ на моей машине Windows 7 , К счастью, я помню, что я удалил git и снова установил его, используя новую версию и различные варианты установки. Разница заключалась в том, чтобы выбрать третий вариант в настройках «Настройка среды PATH» («Использовать Git и дополнительные инструменты Unix из командной строки Windows»).

После обновления node.js в более новой версии (фактически 0.10.31) проблема все еще существует. Поэтому я решил удалить git снова, и et'voila, сервер сокетов снова работает. Теперь я снова установлю git с параметрами по умолчанию, которые не изменят переменную среды PATH.

Таким образом, проблема связана с инструментами unix, доступными через переменную PATH, такие как установленные MinGW, Git или Cygwin (вероятно, не протестированы).

Смежные вопросы