首页 > 解决方案 > Nodejs api 不接受 POST 方法,错误 405

问题描述

我已经搜索了现有的问题,但没有一个对我有用。

我有简单的 nodejs 方法,在我的本地主机上它们工作正常,但是当我将它们托管在服务器(nginx)上时,我的 post 方法给出了 405 错误(不允许),即使我已经允许 CORS 这是我的服务器文件

var http = require('http');
var mongo = require('mongodb');
var cors = require('cors')
var express = require('express');
var app = express();
app.use(cors());
var DB = 'mongodb://localhost:27017/ClientApp';
app.use(express.json());
const clientRoutes = require('./client');
const authRoutes = require('./auth');

app.get('/api/status', (request, response) => {
    // console.log(request.body);
    response.json({ status: ' Server Running' });
});
app.use('/', clientRoutes);
app.use('/', authRoutes);
app.listen(3000, (resp) => {
    console.log('server listening at port number: ', 3000);
});

这是行不通的路线

app.post('/api/register', (request, response) => {
    console.log('Request body: ', request.body);
    mongo.connect(DB, (error, client) => {
        console.log('Connect to Database successfully');
        const connectedDb = client.db('ClientApp');
        data = request.body;
        if (data.username) {
            connectedDb.collection('Users').insertOne(data, (error) => {
                if (error)
                    console.log('Error occured while registration')
                else {
                    response.status(200).send({ status: 'Response Received Successfully', code: 200 })
                    console.log('User registered successfully!');
                }
            })
        } else {
            response.status(204).send({ status: 'Please include the user details', code: 204 })
        }
    })
});

标签: node.jsexpressnginx-reverse-proxy

解决方案


我看到您将应用程序的侦听端口设置为3000. 您将需要在nginx.conf文件中验证从反向代理设置流量的端口。根据设置的不同,可能会有一个环境变量集指示应用程序应该监听哪个端口。这个变量通常称为PORT

如果PORT正在设置环境变量,您可以像这样更改代码:

app.listen(process.env.PORT || 3000, (resp) => {
    console.log('server listening at port number: ', 3000);
});

如果您不知道, usingprocess.env.PORT || 3000将使用process.env.PORT已设置的值。如果它是虚假的,那么3000将被使用。

查看条目NGINX以确定反向代理如何nginx.confserver流量发送到后端应用程序。


推荐阅读