编程语言
首页 > 编程语言> > Javascript-AWS Lambda导出类可在node.js v6.4中使用,但不能在node.js v4.3中使用,如何解决此问题?

Javascript-AWS Lambda导出类可在node.js v6.4中使用,但不能在node.js v4.3中使用,如何解决此问题?

作者:互联网

这个问题已经在这里有了答案:            >            Node.js support for => (arrow function)                                    4个
我的代码在node.js v6.4中有效:
只有两个文件index.js:

  // ------------ Index.js ------------ 
  'use strict';

  var Event = require('./models/event.js');

  exports.handler = (event, context, callback) => {
     console.log('done');
  }

和event.js:

  // ------------ Event.js ------------ 

  class Event {
    static get dynamoDBTableName() {
      return
    }
    get hashValue() {
      return
    }
    parseReference(reference) {
      return
    }
  }

  exports.Event = Event

在使用node.js 4.3版本的AWS Lambda上运行index.handler时,将引发错误:

  Syntax error in module 'index': SyntaxError
  at exports.runInThisContext (vm.js:53:16)
  at Module._compile (module.js:373:25)
  at Object.Module._extensions..js (module.js:416:10)
  at Module.load (module.js:343:32)
  at Function.Module._load (module.js:300:12)
  at Module.require (module.js:353:17)
  at require (internal/module.js:12:17)
  at Object.<anonymous> (/var/task/index.js:16:13)
  at Module._compile (module.js:409:26)
  at Object.Module._extensions..js (module.js:416:10)

我认为exports.Event = Event有点问题,

有一些技巧可以解决此问题.

我是node.js的新手.

任何帮助,不胜感激.

我认为这不是带有(事件,上下文,回调)=>的SyntaxError. {}

由于AWS Lambda示例代码在使用此语法时运行良好:

enter image description here

解决方法:

我最初认为箭头功能是元凶.但是,AWS Node.js 4.3.2确实支持箭头功能,如本post about Node.js 4.3.2 Runtime on Lambda所述.

新(正确)答案

event.js文件是否以’use strict’;开头?

您必须在node.js 4.3.2中的类声明中使用严格模式

Mozilla Developer Network about strict mode

希望这会有所帮助…

原始(不正确)答案

module.exports =产品

我相信箭头功能:

() => {}

您正在使用的nodejs版本(4.3)中尚未实现.

See this answer

自版本4.4.5起,Node.js支持箭头功能.

如果您不可以选择更新nodejs版本,则可以替换为:

  exports.handler = (event, context, callback) => {
    console.log('done');
  }

  exports.handler = (event, context, callback) = function() {
     console.log('done');
}

标签:node-js,amazon-web-services,aws-lambda,javascript,lambda
来源: https://codeday.me/bug/20191026/1937472.html