私はnodejsの初心者です。実行しようとしています:
私は得る:
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;
};
起動した後、localhost:8082 にアクセスするとクラッシュします。それで全部です。申し訳ありませんが、あなたが私を助けることができないこの小さな情報をスローする可能性があります.