gpt4 book ai didi

javascript - 如何将 express.js 服务器部署到 Netlify

转载 作者:行者123 更新时间:2023-12-01 15:28:10 25 4
gpt4 key购买 nike

我正在尝试将 Vue.js、Node、Express、MongoDB (MEVN) 堆栈应用程序部署到 Netlify。我成功将应用程序的前端部署到 Netlify,现在正在尝试部署 express 服务器,基于以下 serverless-http示例:https://github.com/neverendingqs/netlify-express/blob/master/express/server.js

我将服务器配置为包含 serverless-http包裹:

服务器.js

const express = require('express');
const app = express();
const serverless = require('serverless-http');
const bodyParser = require('body-parser');
const cors = require('cors');
const mongoose = require('mongoose');
const config = require('./DB.js');
const postRoute = require('./routes');

mongoose.connect(config.DB, { useNewUrlParser: true, useUnifiedTopology: true }).then(
() => { console.log('Database is connected') },
err => { console.log('Can not connect to the database'+ err)}
);

app.use(cors());
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());

app.use('/messages', postRoute);

app.use('/.netlify/functions/server', router); // path must route to lambda
app.use('/', (req, res) => res.sendFile(path.join(__dirname, '../public/index.html')));


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


路由.js
const express = require('express');
const postRoutes = express.Router();

// Require Post model in our routes module
let Post = require('./post.model');

// Defined store route
postRoutes.route('/add').post(function (req, res) {
let post = new Post(req.body);
post.save()
.then(() => {
res.status(200).json({'business': 'business in added successfully'});
})
.catch(() => {
res.status(400).send("unable to save to database");
});
});

// Defined get data(index or listing) route
postRoutes.route('/').get(function (req, res) {
Post.find(function(err, posts){
if(err){
res.json(err);
}
else {
res.json(posts);
}
});
});

module.exports = postRoutes;


然后我将我的应用程序重新部署到 Netlify,但服务器似乎没有在 Netlify 中运行。此服务器位于我的 vue.js 应用程序的项目根目录中的一个文件夹中。我应该将服务器作为 Netlify 中的单独站点运行吗?如果没有,我应该怎么做才能让服务器在 Netlify 中部署时运行?

最佳答案

已经有一段时间了,但这里有。

正如他们所说,Netlify 托管适用于 Jamstack,即只有静态文件,服务器上没有处理。这个想法是利用其他机制来动态获取您的数据,例如托管在其他地方的 API,您可以直接从浏览器查询,或者在您构建网站时进行查询。

很可能您实际上必须将您的 express.js 应用程序部署为 Netlify 函数。查看Netlify's blog post on running express apps on their functions .

关于javascript - 如何将 express.js 服务器部署到 Netlify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59868667/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com