从命令行和lambda运行带有exports.object的节点应用程序

时间:2015-05-26 14:16:24

标签: node.js aws-lambda

我仍在学习node并且遇到过这个问题。在下面的情况中,并使用一个愚蠢的例子(完整的代码不能放在这里),当我在终端node index.js somethinghere中运行时,代码不会执行。我意识到eventcontext在这个例子中没有任何影响,但它们在我目前正在编写的代码中。

这是因为我在做exports.imageRs吗?

如何通过传入参数让它在命令行上运行?

请注意,原始代码将在aws lambda和命令行上运行。

档案index.js

exports.imageRs = function (event, context) {
  console.log(process.argv);
}

1 个答案:

答案 0 :(得分:1)

在示例中,您显示Node将定义exports.imageRs函数,但它不会执行它。

修复是这样的:

exports.imageRs = function (event, context) {
  console.log(process.argv);
};

if (!module.parent) {
  exports.imageRs();
}

!module.parent检查可以防止其他模块需要模块时执行内部代码,这可能就是你想要的。

$ node index.js somethinghere
[ '/path/to/node',
  '/path/to/index.js',
  'somethinghere' ]

$ node
> require('./index')
{ imageRs: [Function] }