将Lambda函数与Vue&Express应用程序一起用于Netlify时,出现“ A不是函数”错误

时间:2019-02-24 19:52:09

标签: javascript express vue.js aws-lambda netlify

我正在用Vue构建一个Web应用程序,它将使用Netlify Lambda函数和Express.js作为服务器端(使该应用程序“无服务器”)。 Netlify现在可以做到这一点,我正在遵循他们的官方指南:How to run Express.js apps with Netlify Functions。我还使用Netlify Lambda plugin for Vue CLI将lambda函数集成到我的Vue构建过程中。

我有一个名为server.js的小lambda函数。调用此函数时,它将从Spotify API中获取数据。

'use strict'; 

const serverless = require("serverless-http");
const SpotifyWebApi = require("spotify-web-api-node");
const express = require("express");
const app = express();
const bodyParser = require("body-parser");

const router = express.Router();

router.get("/search", (req, res) => {
    // function that searches for a song with the Spotify API
});

app.use(bodyParser.json());
app.use('/.netlify/functions/server', router);  // path must route to lambda

module.exports = app;
module.exports.handler = serverless(app);

这应该起作用-它遵循Netlify's official example repo for Express.js with Netlify Functionsserver.js文件中的模式。我创建一个Express应用程序,将一个名为GET的{​​{1}}端点添加到Express API,然后将Express应用程序导出为Netlify Lambda函数的处理程序。

但是,每当我导航到Lambda函数的URL:search时,我都会不断收到这个模糊,模糊的错误。我已经研究了此错误,并尝试了一堆修补程序和解决方法,但它们尚未解决问题。这是完整的堆栈跟踪:

TypeError: a is not a function

如果这个问题没有足够的细节,或者您想查看我的配置文件或确切的功能,请随时浏览我的小型Web应用程序的Github存储库:https://github.com/vintners/music-calc-app

此外,这也是我的Netlify网站上的{"errorMessage":"a is not a function","errorType":"TypeError","stackTrace":["i (/var/task/server.js:1:220)","Object.<anonymous> (/var/task/server.js:314:35760)","i (/var/task/server.js:1:220)","Object.e.exports.a.debug (/var/task/server.js:159:7043)","i (/var/task/server.js:1:220)","Object.<anonymous> (/var/task/server.js:159:5636)","i (/var/task/server.js:1:220)","Object.<anonymous> (/var/task/server.js:314:13004)","i (/var/task/server.js:1:220)"]} Lambda函数的URL:https://happy-goodall-8bd7c9.netlify.com/.netlify/functions/server

我的Lambda函数设置不正确吗?

0 个答案:

没有答案