[英]NodeJS module executing user script with external function not found
我對nodeJS很陌生。
我正在使用nodeJS模塊node-workflow
基本上,此模塊是一個協調器,它采用自定義javascript腳本(=工作流定義),然后對其進行序列化並將其存儲在REDIS db中(例如),然后由節點工作流模塊按需執行。
工作流定義由任務組成,如下所示:
var my_external_module = require('my_external_module');
var workflow = module.exports = {
name: 'Workflow Test',
chain: [{
name: 'TASK 1',
timeout: 30,
retry: 1,
body: function(job, cb) {
// Execute external function
my_external_module.hello("Monkey");
return cb(null)
},
},
...
首先,我將我的函數my_external_module.hello()放在工作流腳本旁邊的.js文件中。 當我運行節點工作流模塊時,出現以下錯誤:
初始化跑步者時出錯:
[ReferenceError:未定義my_external_module]
因此,我在以下位置創建了模塊my_external_module : ./node_modules/my_external_module/index.js
module.exports = {
hello: function(name) {
console.log("Hello, " + name);
}
};
當我運行節點工作流模塊時,出現相同的錯誤:
初始化跑步者時出錯:
[ReferenceError:未定義my_external_module]
看來require(...)應該位於node-workflow模塊的.js文件之一中,所以我將不得不破解該模塊的文件之一,但它有點臟。
有什么我想念的嗎?
還是有一種方法可以像在Python中那樣定義$ PATH,以便可以從任何地方訪問我的函數。
您必須將其要求為:
var my_external_module = require('./my_external_module');
注意./
這意味着Node應該搜索./my_external_module.js
類的文件。
如果省略./
節點,則通常在node_modules
目錄中查看已安裝的模塊
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.