У меня сейчас есть настройка API, например ...
index. js
require('dotenv').config();
const index = require('./server');
const port = process.env.PORT || 5000;
index.listen(port, () => console.log(`Server is live at localhost:${port}`));
module.exports = index;
server / index. js
const express = require('express');
const routes = require('../routes');
const bodyParser = require('body-parser');
const helmet = require('helmet');
const morgan = require('morgan');
const path = require('path');
const server = express();
server.use(express.json());
// enhance your server security with Helmet
server.use(helmet());
// use bodyParser to parse server application/json content-type
server.use(bodyParser.json());
server.use(bodyParser.urlencoded({ extended: true }));
// log HTTP requests
server.use(morgan('combined'));
server.use(express.static(path.normalize(__dirname+'/public')));
server.use('/api', routes);
// Handle 404
server.use(function(req, res) {
res.send('404: Page not Found', 404);
});
// Handle 500
server.use(function(error, req, res, next) {
res.send('500: Internal Server Error', 500);
});
module.exports = server;
маршруты / индекс. js
const router = Router();
// enable all CORS requests
router.use(cors());
router.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*"); // update to match the domain you will make the request from
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
router.get('/', (req, res) => res.send('Welcome to Timelapse Videos API'));
....
По какой-то причине мой каталог publi c всегда возвращает 404, и я не ' не знаю почему.
Если я добавлю это в маршруты / индекс. js:
router.get('/public', function(req, res) {
res.sendFile(path.join(path.normalize(__dirname+'/../public'), 'index.html'));
});
Он вернет файл stati c, но проблема в том, что может быть номер из каталогов клиентов, которые имеют несколько изображений, которые я хочу вернуть.
Очевидно, есть проблема с моей настройкой, но я могу на всю жизнь увидеть, что происходит. Если у меня есть все API в индексе . js, и я не разделил маршрутизатор, похоже, он работает.
Любая помощь будет фантастической c, и если вам нужна дополнительная информация, пожалуйста, спросите .