簡體   English   中英

使用 Node.io 運行作業時出現問題

[英]Problem running jobs with Node.io

我正在嘗試在此處完成 Node.io 的教程作業。 我運行內置模塊沒有問題:

echo "mastercard.com" | node.io -s pagerank

或者:

node.io query "http://www.reddit.com/" a.title

但是,當我嘗試自己的模塊時:

var nodeio= require('node.io');
exports.job = new nodeio.Job({
input: false,
run: function() {
    this.emit('Hello World');
}

});

並嘗試運行它:

node.io hello

我明白了:

ERROR: Failed to load job "hello". Please check that the job exists and compiles correctly.

調試給了我這個:

DEBUG: {"stack":"Error: Cannot find module 'node.io'\n    at Function._resolveFilename (module.js:322:11)\n    at Function._load (module.js:267:25)\n    at require (module.js:351:19)\n    at Object.<anonymous> (/Users/username/Documents/Nodejs/hello.js:1:75)\n    at Module._compile (module.js:407:26)\n    at Object..js (module.js:413:10)\n    at Module.load (module.js:339:31)\n    at Function._load (module.js:298:12)\n    at require (module.js:351:19)\n    at [object Object].loadJob (/opt/local/lib/node_modules/node.io/lib/node.io/processor.js:294:37)","message":"Cannot find module 'node.io'"}

我確定我在做一些愚蠢的事情。 有什么想法嗎?

編輯:回復下面的答案

我也試過這個:

.npm/node.io/0.2.9-4/package/bin/io -s hello.js

和:

node_modules/node.io/bin/node.io -s hello.js

並得到這個結果:

node.js:134
    throw e; // process.nextTick error, or 'error' event on first tick
    ^
Error: Cannot find module 'node.io'
at Function._resolveFilename (module.js:322:11)
at Function._load (module.js:267:25)
at require (module.js:351:19)
at Object.<anonymous> (/Users/thaymore/.npm/node.io/0.2.9-4/package/bin/io:2:1)
at Module._compile (module.js:407:26)
at Object..js (module.js:413:10)
at Module.load (module.js:339:31)
at Function._load (module.js:298:12)
at Array.<anonymous> (module.js:426:10)
at EventEmitter._tickCallback (node.js:126:26)

這是 NPM 如何安裝包括 node.io 在內的模塊的“功能”,以便以后可以通過節點找到它。 如果仔細查看堆棧,錯誤是節點無法找到 node.io 本身。 最簡單的解決方案是安裝到您的主目錄,因為默認設置知道如何從那里操作。 使用不帶 -g 選項的“npm install node.io”。 如果您確實使用 -g,請准備好使用 NODE_PATH 或其他幾個選項,請參閱來自 isaacs 的通信 無論哪種方式,“node hello”現在都可以使用。

請注意,節點社區並不害怕強烈的意見,在選擇最適合您的情況的技術解決方案時,其中大部分都可以被視為噪音,恕我直言。

我能夠讓它像這樣運行:

$ npm install node.io
$ node_modules/node.io/bin/node.io -s test.js
Hello World!

test.js很簡單:

var nodeio = require('node.io');
exports.job = new nodeio.Job({
    input: false,
    run: function () {
        this.emit('Hello World!');
    }
});

我遇到了同樣的問題,這對我有用。

NODE_PATH="$NODE_JS_HOME/lib/node_modules/";
export NODE_PATH

將上述內容放入/etc/profile~/.profile ,其中NODE_JS_HOME是您安裝node.js的位置

edit:此頁面http://nodejs.org/api/modules.html還建議將node_modules文件夾放入$NODE_PATH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM