2017-02-02 3 views
3

Я пытаюсь развернуть функцию лямбда-AWS, и я написал код в курьерским:AWS Lambda: Ошибка инициализации модуля: TypeError

Код:

var express = require('express'); 
    var bodyParser = require('body-parser'); 
    var lampress = require('lampress'); 
    var request = require('request'); 
    var app = express(); 

    app.set('port', (process.env.PORT || 5000)); 

    // Process application/x-www-form-urlencoded 
    app.use(bodyParser.urlencoded({extended: false})); 

    // Process application/json 
    app.use(bodyParser.json()); 

    // Index route 
    app.get('/', function (req, res) { 
     res.send('Hello! I am a Chatbot designed to help you learn Type "begin" to start a chat! You can type "begin" at any time to return to the first menu'); 
    }); 

    // for Facebook verification 
    app.get('/webhook/', function (req, res) { 
     if (req.query['hub.verify_token'] === 'xyz') { 
      res.send(req.query['hub.challenge']); 
     } 
     res.send('Error, wrong token'); 
    }); 

    // Spin up the server 
    app.listen(app.get('port'), function() { 
     console.log('running on port', app.get('port')); 
    }); 

    //figure out if your greeting text is working 
    //need persistent menu? 
    app.post('/webhook/', function (req, res) { 
     getStarted(); 
     greetingText(); 
     messaging_events = req.body.entry[0].messaging; 
     for (i = 0; i < messaging_events.length; i++) { 

      event = req.body.entry[0].messaging[i]; 
      sender = event.sender.id; 
      if (event.message && event.message.text) { 
      //code 
      } 
      if (event.postback) { 
      //code 
      } 
      console.log('********2'); 
     } 
     res.sendStatus(200) 
    }); 

    exports.handler = lampress(app, function() { 
     console.log("Server has started"); 
    }); 

Ошибка:

module initialization error: TypeError 
     at lampress (/var/task/node_modules/lampress/index.js:82:10) 
     at Object.<anonymous> (/var/task/index.js:829:23) 
     at Module._compile (module.js:409:26) 
     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)* 

I имеют правильные узловые_модули. Почему это не работает.

сжатая структура zip -> index.js -> folder_modules folder.

package.json: "lampress": "^ 1.1.1"

ответ

1

Я думаю, ваша проблема в exports.handler = lampress(... согласно lampress docslampress() занимает 2-ар , первый номер порта и второй сервер. Вы уже прошли в сервере для первого аргумента и функции для второго, так lampress бросает TypeError

Правильный код будет выглядеть так:

exports.handler = lampress(<your port number>, app); 
+0

https://github.com/Rooftoptek/lampress – SylonZero

+0

Thats for version 2.0 +0,0. Установка lampress с помощью '' 'npm install lampress''' устанавливает 1.1.1, поэтому документы на https://www.npmjs.com/package/lampress должны быть правильными. – schu34

+0

Он не упомянул, как он его установил. И что более важно, трассировка стека его ошибки, по-видимому, происходит из инструкции require. – SylonZero

0

В зависимости от того, как поступают в модуль, вы можете попробовать:

require('./lampress'); 

Кроме того, в обработчике маршрута, незначительные коррекция, чтобы избежать отправки ответа дважды:

app.get('/webhook/', function (req, res) { 
    if (req.query['hub.verify_token'] === 'xyz') { 
     return res.send(req.query['hub.challenge']); 
    } 
    res.send('Error, wrong token'); 
}); 
+0

Благодаря коррекции Sylon.changing требуется (»./lampress'); Я столкнулся с ошибкой инициализации модуля. Поскольку он не может найти модуль узла lampress. – user2936008

+0

Точная ошибка: Ошибка: не удается найти модуль './lampress' at Function.Module._resolveFilename (module.js: 469: 15) at Function.Module._load (module.js: 417: 25) – user2936008

+0

Я создал новая функция, и я получаю сообщение об ошибке: http://stackoverflow.com/questions/42008247/error-when-deploying-aws-lambda-deployment-package – user2936008