У меня есть экспресс-сервер, который я размещаю с использованием IIS. У меня проблема, когда все мои POST-запросы возвращают 404 страницы. Мои запросы GET работают нормально.
Вот мой server.js
const express = require('express');
const cors = require('cors');
const puppeteer = require('puppeteer');
const { createUrl } = require('./urlBuilder');
const app = express();
app.use(express.json());
app.use(cors());
const pdfConfig = {
format: 'A4',
printBackground: true,
margin: {
top: '1cm',
bottom: '1cm',
left: '1.5cm',
right: '1.5cm'
}
};
// Our first route
app.get('/test', function (req, res) {
res.send('Hello Dev!');
});
app.post('/create-pdf', function(req, res) {
const url = createUrl(req.body);
const browser = puppeteer.launch();
browser.then((brw) => {
const page = brw.newPage();
page.then((pg) => {
pg.goto(url).then(() => {
pg.emulateMedia('screen').then(() => {
const buffer = pg.pdf(pdfConfig);
buffer.then((buf) => {
brw.close();
res.end(buf.toString('base64'));
})
})
})
})
});
});
Вот мой web.config
<configuration>
<system.webServer>
<!-- indicates that the server.js file is a node.js application
to be handled by the iisnode module -->
<handlers>
<add name="iisnode" path="server.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="sendToNode">
<match url="/*" />
<action type="Rewrite" url="server.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Если я использую REST-клиент, такой как бессонница и GET http://example.com/test, он работает нормально, но POST к http://example.com/create-pdf возвращает 404. Я что-то здесь упускаю?