gpt4 book ai didi

javascript - 未找到使用外部函数执行用户脚本的 NodeJS 模块

转载 作者:太空宇宙 更新时间:2023-11-04 02:23:31 25 4
gpt4 key购买 nike

我对 NodeJS 还很陌生。

我正在使用nodeJS模块node-workflow

基本上,该模块是一个编排器,它采用自定义 JavaScript 脚本(=工作流定义),然后将其序列化并将其存储在 REDIS 数据库中(例如),并稍后由 node-workflow 模块按需执行。

工作流定义由任务组成,如下所示:

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 文件中。当我运行 node-workflow 模块时,出现以下错误:

Error initializing runner:

[ReferenceError: my_external_module is not defined]

所以我创建了一个模块my_external_module,并在:./node_modules/my_external_module/index.js

    module.exports = {
hello: function(name) {
console.log("Hello, " + name);
}
};

当我运行node-workflow模块时,我收到相同的错误:

Error initializing runner:

[ReferenceError: my_external_module is not defined]

似乎 require(...) 应位于 node-workflow 模块的 .js 文件之一中,因此我必须破解该模块的其中一个文件,但它有点脏。

有什么我错过的吗?

或者有没有办法像Python一样定义$PATH,以便我的函数可以从任何地方访问。

最佳答案

您必须将其要求为:

var my_external_module = require('./my_external_module');

注意 ./ 这意味着 Node 应该搜索像 ./my_external_module.js

这样的文件

如果省略 ./ Node 将查看(通常)node_modules 目录中已安装的模块

关于javascript - 未找到使用外部函数执行用户脚本的 NodeJS 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31741261/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com