我正在用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 Functions中server.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函数设置不正确吗?