Я создаю веб-приложение с Vue, которое будет использовать функции Netlify Lambda и Express.js в качестве серверной части (что делает приложение "безсерверным").Теперь это возможно с Netlify, и я следую их официальному руководству: Как запускать приложения Express.js с помощью функций Netlify .Я также использую плагин Netlify Lambda для Vue CLI , чтобы интегрировать лямбда-функции в мой процесс сборки Vue.
У меня есть небольшая лямбда-функция, которая называется server.js
.Когда эта функция вызывается, она получает данные из 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);
Это должно работать - оно следует шаблону в файле server.js
в Официальный пример репозитория Netlify для Express.js с функциями Netlify .Я создаю приложение Express, добавляю конечную точку GET
с именем search
в Express API, а затем экспортирую приложение Express в качестве обработчика для функций Netlify Lambda.
Однако я все время получаю эту загадочную информацию,Неопределенная ошибка всякий раз, когда я перехожу к URL для функции Lambda: TypeError: a is not a function
.Я исследовал эту ошибку и попробовал кучу исправлений и обходных путей, но они не устранили проблему.Вот полная трассировка стека:
{"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)"]}
Если в этом вопросе недостаточно подробностей или вы хотите посмотреть мои файлы конфигурации или мои точные функции, не стесняйтесь исследовать Githubрепозиторий для моего небольшого веб-приложения: https://github.com/vintners/music-calc-app
Кроме того, это URL-адрес функции server.js
Lambda на моем сайте Netlify: https://happy -goodall-8bd7c9.netlify.com /.netlify / functions / server
Правильно ли настроена моя лямбда-функция?