Я перепробовал все возможные пути и три разные хостинговые платформы, и я не могу понять это. Если кто-то из вас хотел увидеть репо, здесь это .
Вот мой server.js ниже. Я делаю запрос от моего интерфейса $.get('/api/quotes')
к моему API в /api/quotes
. Это хорошо работает на локальном компьютере, но в производственном процессе он даже не регистрируется и возвращает 404.
Я в замешательстве, я включил cors
, я использую https
с сертификатами и ключом. Продукция mongodb uri действительна. Почему этот маршрут регистрируется локально, а не на производстве?
const express = require('express')
const fs = require('fs');
const https = require('https');
const path = require('path');
const bodyparser = require('body-parser');
const { json, urlencoded } = bodyparser;
const config = require('./server/config')
const cors = require('cors')
const connect = require('./server/utils/db')
const quoteRouter = require('./server/resources/quote/quote.router');
const app = express()
// const { signup, signin, protect } =require('./utils/auth')
app.disable('x-powered-by')
app.use(cors());
app.use(json());
app.use(urlencoded({ extended: true }))
app.use(express.static((path.join(__dirname))))
app.use('/api/quotes', quoteRouter);
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', '*');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
// intercept OPTIONS method
if ('OPTIONS' == req.method) {
res.sendStatus(200);
} else {
next();
}
});
// Serve static home file
app.get('/',(req,res) => {
res.status(200);
res.sendFile(path.join(__dirname, './index.html'));
});
const start = async () => {
try {
await connect()
.then( () => {
console.log('Connection to the Atlas Cluster is successful!')
})
.catch( (err) => console.error('mongodb error',err));
https.createServer({
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.cert')
},app).listen(config.port, () => {
console.log(`Listening on port ${config.port}`)
})
} catch (e) {
console.error(e)
}
}
start()