首页 > 解决方案 > 处理程序函数中的 AWS Lambda Node JS 8.10 语法错误

问题描述

我有以下 AWS lambda 方法

NodeJS 8.10.0

// 'use strict';
var fs = require("fs");

class ReadFile{
    constructor(file){
        if(undefined == file){
          this.file = "./index.html";
        }
    }

    content(){
        var buff = fs.readFileSync(this.file);
        return Buffer.from(buff, 'base64').toString('ascii');
    }

}
exports.handler = function (event, context, callback) {
    var f = new ReadFile(event.file);
    callback(null, f.content());
    // callback(null,f.content());
};

我得到语法错误

但是当我在没有类的处理程序中定义它时,相同的方法正在工作,如下所示

exports.handler = function (event, context, callback) {
    if (undefined === event.file) {
        event.file = "index.html";
    }
    var cn = fs.readFileSync(event.file);
    callback(null, Buffer.from(cn, 'base64').toString('ascii'));
    // callback(null,f.content());
};

出现错误

{errorMessage=RequestId: a51e4f417 Process exited before completing request}

标签: node.jsamazon-web-servicesaws-lambda

解决方案


看起来问题出在您的构造函数代码中。我认为你缺少else的部分条件。所以尝试更换

    constructor(file){
       if(undefined == file){
         this.file = "./index.html";
       }
    }

    constructor(file){
       if(undefined == file){
         this.file = "./index.html";
       }
       else {
         this.file = file;
       }
    }

推荐阅读