Метод HTTP ошибка 405 не разрешен в AZURE

#node.js #angular #azure #http #hosting

#node.js #угловой #azure #http #хостинг

Вопрос:

Ищу некоторую помощь с этой ошибкой. После размещения моего Node.js amp; Angular project в azure Я получаю эту ошибку при запросе POST: Http failure response для https://https://green-market.azurewebsites.net/api/auth/login : Метод 405 не разрешен

Это мой файл web.config:

 <?xml version="1.0"?>
<configuration>
    <system.webServer>
      <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Methods" value="GET, PUT, POST, DELETE, HEAD" />
        <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
      </customHeaders>
    </httpProtocol>
    <handlers>
      <remove name="iisnode" />
               <add name="iisnode" path="app.js" verb="*" modules="iisnode"/>
          </handlers>
        <rewrite>
            <rules>
                <rule name="Angular Routing" stopProcessing="true">
                <match url=".*" />
                <conditions logicalGrouping="MatchAll">
                    <add input="{REQUEST_FILENAME}" matchType="IsFile"
                         negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory"
                         negate="true" />
                </conditions>
                <action type="Rewrite" url="/" />
                </rule>
            </rules>
        </rewrite>
        <staticContent>
            <mimeMap fileExtension="woff" mimeType="application/font-woff" />
            <mimeMap fileExtension="json" mimeType="application/json" />
        </staticContent>
    </system.webServer>
</configuration>
  

И это мой app.js файл из node.js сервер:

 let originUrl;
if (process.env.PORT) {
    global.config = require("./config-prod");
    originUrl = "https://green-market.azurewebsites.net";
}
else {
    global.config = require("./config-dev");
    originUrl = "http://localhost:4200";
}
require("./data-access-layer/dal");
const express = require("express");
const session = require("express-session");
const path = require("path");
const cors = require("cors");
const productsController = require("./controllers/products-controller");
const authController = require("./controllers/auth-controller");
const shoppingCartsController = require("./controllers/shopping-carts-controller");
const ordersController = require("./controllers/orders-controller");
const citiesController = require("./controllers/cities-controller");
const server = express();
const fileUpload = require("express-fileupload");
const { request, response } = require("express");
const { url } = require("inspector");


server.use(fileUpload());
server.use(express.json());
server.use(express.static(path.join(__dirname, "./_front-end")));

server.use(cors({
    origin: originUrl,
    credentials: true
}));


server.use(session({
    name: "OnlineMarketSession",
    secret: "itsASecret",
    resave: true,
    saveUninitialized: false,
}));

server.use("/api/products", productsController);
server.use("/api/shopping-carts", shoppingCartsController);
server.use("/api/orders", ordersController);
server.use("/api/auth", authController);
server.use("/api/cities", citiesController);

// Any other route - return index.html as we are SPA:
server.use("*", (request, response) => {
    response.sendFile(path.join(__dirname, "./_front-end/index.html"));
});
const port = process.env.PORT || 3000;
server.listen(port, () => console.log(`Listening on port ${port}`));
  

Спасибо!

Комментарии:

1. Можете ли вы также использовать AuthController?

2. const express = require(«экспресс»); const authLogic = require(«../бизнес-логика / автологика»); const User = require(«../модели / пользователь»); const {запрос, ответ } = require(«экспресс»); const маршрутизатор = экспресс. Router(); router.post(«/ login», асинхронный (запрос, ответ) => {try { const credentials = request.body; const user = ожидает authLogic.login(учетные данные); если (!user) { response.status(401).send(«Неправильное имя пользователяили пароль»); return } request.session.user = user; response.json(пользователь);} catch (ошибка) { response.status(500).send(ошибка.message); console.log(ошибка.message);}})