首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nodejs错误:产卵ENOENT

nodejs错误:产卵ENOENT
EN

Stack Overflow用户
提问于 2013-08-22 14:26:32
回答 4查看 11.7K关注 0票数 2

我是nodejs的新手,我试着运行它:

我获得:

代码语言:javascript
复制
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)

我该怎么解决呢?

可能是这个代码中的问题:

代码语言:javascript
复制
/**

 */
/*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和它崩溃!就这样。很抱歉,有可能把这些你帮不了我的小信息告诉我。

EN

回答 4

Stack Overflow用户

发布于 2014-08-23 11:44:26

在我的Windows 7机器上更新了很多程序之后,我也得到了同样的错误。幸运的是,我记得我删除了git,并使用更新的版本和不同的安装选项重新安装了它。区别是在“调整路径环境”设置中选择第三个选项(“从Windows命令提示符中使用Git和可选Unix工具”)。

在将node.js更新到更新版本(实际上为0.10.31)之后,问题仍然存在。所以我决定再次删除git,然后socket服务器又开始工作了。现在,我将再次使用默认选项安装git,这些选项不会修改PATH环境变量。

因此,问题来自通过路径变量(如由MinGW、Git或Cygwin安装)可访问的unix工具(可能--没有测试)。

票数 1
EN

Stack Overflow用户

发布于 2013-08-23 08:18:47

  • 读取自述文件
  • 尝试使用npm install pvsio-web -g或(如果您的/usr/local/目录属于根用户) sudo npm install pvsio-web -g来安装它
  • 您应该在计算机上安装pv和pvsio。
  • 您应该确保pvsio作为路径上的命令可用。
票数 0
EN

Stack Overflow用户

发布于 2014-02-24 13:31:34

  1. 如果您不想全局安装pvsio,可以从节点_模块/..bin运行它。
  2. 您必须注册到产卵的“错误”事件,请参阅:过程孕育法
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18383260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档