我正在尝试将MERN堆栈应用程序部署到Netlify。它是一个集成的代码库,其中前端和后端位于同一存储库中(一个package.json文件)。据我了解,Netlify将只部署前端,而后端则必须与Netlify Lambda Functions连接。
问题似乎是(例如,)videoService.js中的提取请求调用了路由“ api / videos”,该过程失败了,因为在部署的版本中无法访问route / api文件夹(来自express)该网站。
async function getChannelVideos() {
console.log('getChannelVideos called in videoService');
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json'
}
};
console.log('approaching fetch in videoService');
return fetch(`/api/videos`, options).then(res => res.json());
}
https://docs.netlify.com/functions/build-with-javascript/#format 我遵循了Netlify的文档示例(在上面的链接中),创建了一个functions文件夹并编写了一个函数,当您在URL中键入终结点时该函数起作用了,但是我不清楚如何将其应用于当前项目/问题。
exports.handler = function (event, context, callback) {
callback(null, {
statusCode: 200,
body: 'Hello?'
});
}
我找到的最近的一篇文章是: https://blog.bitsrc.io/react-production-deployment-part-1-netlify-703686631dd1 最后一个示例“与Express.js –v2互动” 与我的项目相匹配,因为它是一个包含package.json文件的集成代码库。 但是,我不清楚如何连接Routes文件夹,Controllers文件夹,并且在此之后还担心如何连接Models文件夹(或通常的数据库)。
我不确定是否必须重组我的整个项目…是否应该像示例所示将所有Routes和Controller函数移到src目录中?
我非常感谢您的帮助!!
萨曼莎