繁体   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