我的代码在node.js v6.4中有效: 只有两个文件,index.js:
// ------------ Event.js ------------
class Event {
static get dynamoDBTableName() {
return
}
get hashValue() {
return
}
parseReference(reference) {
return
}
}
exports.Event = Event
和event.js:
index.handler
在使用版本node.js 4.3的AWS Lambda上运行 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
我认为(event, context, callback) => { }
,
是否有一些技巧可以解决这个问题。
我是node.js的新手。
任何帮助都应该受到赞赏。
我认为这不是带有{{1}}
的SyntaxError因为AWS Lambda示例代码在此语法中运行良好:
答案 0 :(得分:4)
我原本以为箭头功能是罪魁祸首。但是,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)。
自4.4.5版本以来,Node.js支持箭头功能
如果您无法更新nodejs版本,则可以替换:
exports.handler = (event, context, callback) => {
console.log('done');
}
与
exports.handler = (event, context, callback) = function() {
console.log('done');
}