2017-08-10 89 views
0

我最近在AWS上开始了Lambda函数开发。当尝试导入JavaScript文件,我收到以下错误,AWS Lambda模块初始化错误

module initialization error: ReferenceError 
at Object.<anonymous> (/var/task/model/claim_type.js:3:29) 
at Module._compile (module.js:570:32) 
at Object.Module._extensions..js (module.js:579:10) 
at Module.load (module.js:487:32) 
at tryModuleLoad (module.js:446:12) 
at Function.Module._load (module.js:438:3) 
at Module.require (module.js:497:17) 
at require (internal/module.js:20:19) 
at Object.<anonymous> (/var/task/index.js:2:19) 
at Module._compile (module.js:570:32) 
at Object.Module._extensions..js (module.js:579:10) 
at Module.load (module.js:487:32) 
at tryModuleLoad (module.js:446:12) 
at Function.Module._load (module.js:438:3) 
at Module.require (module.js:497:17) 
at require (internal/module.js:20:19) 

在根级别我有index.js文件和claim_type.js文件模型目录中。

index.js

const Sequelize = require('sequelize'); 
const ClaimType = require('./model/claim_type.js'); 

exports.handler = function (event, context, callback) { 
    //function content 
} 

claim_type.js

const Sequelize = require('sequelize'); 

const ClaimType = sequelize.define('claimtype', { 
    id: { 
     type: Sequelize.INTEGER, 
     autoIncrement: true, 
     primaryKey: true 
    }, 
    name: { 
     type: Sequelize.STRING 
    } 
}, { 
     timestamps: false 
    }); 

module.exports = ClaimType; 

什么是导入claim_type.js正确的方法是什么?

+0

它看起来像没有找到sequelize。您是否将node_modules目录与自己的源一起部署到lamdba? – mtkopone

+0

是的,我使用命令* zip -r Lambda-Deployment.zip * -x * .zip * .json * .log *来创建zip文件。我认为这与sequ​​elize没有关系,因为直到我将* ClaimType *移动到单独的文件中,它才能正常工作。 – Lakmal

回答

1
const Sequelize = require('sequelize'); 

const ClaimType = sequelize.define('claimtype', { 

你的const是Camelcase,但第二行是小写!