Мне не удается заставить службы приложений Azure принимать любые запросы, кроме GET.Я знаю, что экспресс-приложение запущено, потому что я указываю URL-адрес «/», чтобы посмотреть на server / index.js (мой экспресс-сервер) и могу изменить его поведение (я перенаправляю на другой путь).Но когда я пытаюсь подключиться к другой конечной точке, которая существует на сервере, она дает мне 404.
Мои настройки настроены:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<modules runAllManagedModulesForAllRequests="false" />
<iisnode watchedFiles="web.config;*.js" />
<handlers>
<add name="iisnode" path="server/index.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="NodeInspector" patternSyntax="ECMAScript" stopProcessing="true">
<match url="^server/index.js\/debug[\/]?" />
</rule>
<rule name="app" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
<match url="iisnode.+" negate="true" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="server/index.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Экспресс-код сервера:
const express = require('express');
const fs = require('fs');
const path = require('path');
const axios = require('axios');
const bodyParser = require('body-parser');
const app = express();
//initialize express
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(express.static(`${__dirname}./../dist`));
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, './../dist/index.html'), (err) => {
if (err) {
res.status(500).send(err)
}
})
});
app.post('/login', (req, res) => {
/* Login logic here*/
});
/* * Server * */
const port = process.env.PORT || 3000;
app.listen(port, () => console.log(`Listening to port ${port}`));