Javascript 为什么AWS lambda使用nodejs生成损坏的excel文件&;excel4node

Javascript 为什么AWS lambda使用nodejs生成损坏的excel文件&;excel4node,javascript,node.js,express,aws-lambda,excel4node,Javascript,Node.js,Express,Aws Lambda,Excel4node,我试图创建一个nodejs应用程序,将excel文件导出(下载)给用户,当我点击url(/download)时,相同的代码在localhost上运行良好,下载的文件正常,但当我将相同的代码上载到lambda时,它会返回损坏的文件。请帮我做这个: router.get('/download', function (req, res, next) { var result = [ { emp_username: 'ABC', emp_name: 'ABCDEF', emp_address

我试图创建一个nodejs应用程序,将excel文件导出(下载)给用户,当我点击url(/download)时,相同的代码在localhost上运行良好,下载的文件正常,但当我将相同的代码上载到lambda时,它会返回损坏的文件。请帮我做这个:

router.get('/download', function (req, res, next) {
  var result = [
    { emp_username: 'ABC', emp_name: 'ABCDEF', emp_address: '52nd Downtown', emp_department: 'Reasearch & Analysis', emp_salary: 113000, emp_doJoin: '2018-11-05' },
    { emp_username: 'BCD', emp_name: 'BCDEFG', emp_address: '1st W DC', emp_department: 'Accounts', emp_salary: 60000, emp_doJoin: '2017-01-02' },
    { emp_username: 'CDE', emp_name: 'CDEFGH', emp_address: '5th St Capital State', emp_department: 'Finance', emp_salary: 250000, emp_doJoin: '2017-10-18' },
    { emp_username: 'DEF', emp_name: 'DEFGHI', emp_address: '3rd SanJose CA', emp_department: 'Administration', emp_salary: 623000, emp_doJoin: '2004-06-01' }
  ];

  var wb = new excel.Workbook();

  var ws = wb.addWorksheet('Sheet1'); //add worksheets to workbook

  ws.cell(1, 1).string('Username');
  ws.cell(1, 2).string('Fullname');
  ws.cell(1, 3).string('Address');
  ws.cell(1, 4).string('Department');
  ws.cell(1, 5).string('Salary');
  ws.cell(1, 6).string('Date of Joining');
  ws.row(1).setHeight(25);

  for (var x = 0; x < result.length; x++) {
    ws.cell(x + 2, 1).string(result[x]['emp_username']).style(rowStyle);
    ws.cell(x + 2, 2).string(result[x]['emp_name']).style(rowStyle);
    ws.cell(x + 2, 3).string(result[x]['emp_address']).style(rowStyle);
    ws.cell(x + 2, 4).string(result[x]['emp_department']).style(rowStyle);
    ws.cell(x + 2, 5).number(result[x]['emp_salary']).style(rowStyle);
    ws.cell(x + 2, 6).date(result[x]['emp_doJoin']).style(rowStyle);
  }
  wb.write('Employees.xlsx', res);
});
router.get('/download',函数(req、res、next){
var结果=[
{emp_用户名:'ABC',emp_名称:'ABCDEF',emp_地址:'52商业区',emp_部门:'Reasearch&Analysis',emp_工资:113000,emp_doJoin:'2018-11-05'},
{emp_用户名:'BCD',emp_名称:'BCDEFG',emp_地址:'1st W DC',emp_部门:'Accounts',emp_工资:60000,emp_doJoin:'2017-01-02'},
{emp_用户名:'CDE',emp_名称:'CDEFGH',emp_地址:'5th St Capital State',emp_部门:'Finance',emp_工资:250000,emp_doJoin:'2017-10-18'},
{emp_用户名:'DEF',emp_名称:'DEFGHI',emp_地址:'3rd SanJose CA',emp_部门:'Administration',emp_工资:623000,emp_doJoin:'2004-06-01'}
];
var wb=new excel.Workbook();
var ws=wb.addWorksheet('Sheet1');//将工作表添加到工作簿
ws.cell(1,1.string('Username');
ws.cell(1,2).string('Fullname');
ws.cell(1,3).string('Address');
ws.cell(1,4).string('Department');
ws.cell(1,5).string('Salary');
ws.cell(1,6).string('加入日期');
西行(1)。设置高度(25);
对于(var x=0;x
您的本地和远程nodejs运行时是否相同?@ArunK yes两个运行时都是sameLambda不允许您在根目录中写入文件。您可以在“/tmp”目录中写入文件。供您使用“/tmp/Employees.xlsx”作为文件路径。仅供参考,您可以在tmp目录中写入高达512MB的文件。@mdkhirolashik wb.write函数将文件发送到res对象,因此提示用户下载,n这正在本地主机上工作。此代码是否生成名为“Employees.xlsx”的物理文件?您的本地和远程nodejs运行时是否相同?@ArunK yes两个运行时都是sameLambda不允许您在根目录中写入文件。您可以在“/tmp”目录中写入文件。供您使用“/tmp/Employees.xlsx”作为文件路径。仅供参考,您可以在tmp目录中写入高达512MB的文件。@mdkhirolashik wb.write函数将文件发送到res对象,因此提示用户下载,n这在本地主机上工作。此代码是否生成名为“Employees.xlsx”的物理文件?