簡體   English   中英

找不到執行外部功能的用戶腳本的NodeJS模塊

[英]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.

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