2

I am very newbie with nodejs, I am trying to run it:

I obtain:

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) 

How Can I solve?


May be the problem is inside this code:

/** */ /*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; }; 

After have started it , I go to localhost:8082 and it crashes! That's all. I' am sorry, it's possible that throw this little information you can't help me.

9
  • 4
    Show us the code. What platform are you running node on? Commented Aug 22, 2013 at 14:28
  • 1
    Is there file called package.json in your project? Commented Aug 22, 2013 at 15:02
  • 1
    Yes there is: "{ "name":"pvsio-web", "author":"Patrick Oladimeji <[email protected]>", "description":"A javascript library to connect to and communicate with a pvsio process using websockets", "version":"0.0.13", "preferGlobal":"true", "main":"./pvssocketserver.js", "bin":"./pvssocketserver.js", "dependencies":{ "ws":"0.4.x", "express":"3.x" }, "repository":{ "type":"git", "url":"github.com/thehogfather/pvsio-web" }, "license":"MIT", "engine":{ "node":">=0.8" } }" Commented Aug 22, 2013 at 15:06
  • 1
    Have you run npm install in the directory of your project? Commented Aug 22, 2013 at 15:11
  • 1
    @Edge7 yes npm install without any argument Commented Aug 22, 2013 at 15:24

4 Answers 4

1

I got the same error, after updating a lot of programs on my Windows 7 machine. Luckily I could remember that I removed git and installed it again using a newer version and different installation options. The difference was to select the 3rd option in "Adjusting PATH environment" settings ("Use Git and optional Unix tools from the Windows Command Prompt").

After updating node.js to a newer version (actually 0.10.31) the problem still exists. So I deciced to remove git again, and et'voila, socket server is working again. Now I will install git again with the default options, which do not to modify the PATH environment variable.

So the problem comes from unix tools accessible through PATH variable such as installed by MinGW, Git or Cygwin (probably - not tested).

Sign up to request clarification or add additional context in comments.

Comments

0
  • Read readme
  • Try to install this using npm install pvsio-web -g or (if your /usr/local/ directory is owned by root) sudo npm install pvsio-web -g
  • You should installed pvs and pvsio on your computer
  • You should ensure that pvsio is available as a command on your path

Comments

0
  1. If you don't want to install pvsio globally you can run it from node_modules/.bin
  2. You should have to register to 'error' events of spawn, see: NodeJS: throw er; //Unhandled 'error' event (events.js:72) when using child_process spawn method

Comments

0

A very simple cause of this error: you're installing an application on a new server and the code is trying to run a linux CLI program that hasn't yet been installed on that particular server.

In my case, the code was spawning a process running inotify. So going to the linux command line and running

apt-get install inotify-tools 

resolved the error.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.