Проблемы с моими маршрутами в моем производственном проекте с node js ERROR - PullRequest
0 голосов
/ 14 июля 2020

У меня проблемы с моим проектом в производстве, я не знаю, есть ли у меня плохая конфигурация или что-то в этом роде, я хотел бы знать, если вы что-то видите, я оставлю вам фрагменты своего кода.

На локальном уровне работает отлично, кажется, что в продакшене я использую netlify, он плохо принимает маршруты

Это файл в папке моих маршрутов

'use strict'
var express = require('express');
var ArticleController = require('../controllers/article');
var router = express.Router();
var multipart = require('connect-multiparty');
var md_upload = multipart({uploadDir: './upload/articles'});

router.get('/', ArticleController.probar);
router.post('/save', ArticleController.save);
router.get('/articles/:last?', ArticleController.getArticles);
router.get('/article/:id', ArticleController.getArticle);
router.put('/article/:id', ArticleController.update);
router.delete('/article/:id', ArticleController.delete);
router.post('/upload-image/:id?', md_upload , ArticleController.upload);
router.get('/get-image/:image', ArticleController.getImage);
router.get('/search/:search', ArticleController.search);

module.exports = router;

Итак, я go туда, куда я экспортирую эти пути, то есть в приложение. js файл

'use strict'

var express = require('express');
var bodyParser = require('body-parser');
var app = express();
var article_routes = require('./routes/article');


app.use(bodyParser.urlencoded({extended:false}));
app.use(bodyParser.json());

// CORS
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Authorization, X-API-KEY, Origin, X-Requested-With, 
Content-Type, Accept, Access-Control-Allow-Request-Method');
res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, DELETE');
res.header('Allow', 'GET, POST, OPTIONS, PUT, DELETE');
next();
});

app.use('/api', article_routes);

module.exports = app;

Затем я go в свой индекс. js куда я импортирую приложение. js

'use strict'

var mongoose = require('mongoose');
var port = process.env.PORT || 3900;
var app = require('./app');

mongoose.set('useFindAndModify', false);
mongoose.Promise = global.Promise;

mongoose.connect('mongodb+srv://emocrat3:emocrat3@reactproyecto.plzbz.mongodb.net/reactProyecto? 
retryWrites=true&w=majority', { useNewUrlParser: true })
    .then(() => {
            console.log('La conexion a mongodb se realizo correctamente!');

            //Crear servidor y ponerme a escuchar peticiones HTTP
            app.listen(port, () => {
                    console.log('Servidor corriendo en http://localhost:' + port);

            });

    });

Я добавлю свой репозиторий, если вы хотите узнать больше или мне нужно что-то добавить Репозиторий Github

И мой сайт станет лучше Обратите внимание на ошибку Веб-приложение Ошибка представлена ​​именно здесь ЗДЕСЬ ОШИБКА

Единственный путь, который я сделал для попадания, -

router.get ('/ articles /: last?', ArticleController.getArticles);

И мой интерфейс, который я задаю, это

    getArticles = () => {
    axios.get("http://arthuro-gomez-react.netlify.app/api/articles")
        .then(res => {
            this.setState({
                articles: res.data.articles,
                status: 'success'
            });
         });
    }

Надеюсь, я хорошо сформулировал свой вопрос Я был бы признателен за ваше время, чтобы взглянуть на мою проблему. Спасибо

Ответы [ 2 ]

1 голос
/ 14 июля 2020
router.get ('/ articles /: last?', ArticleController.getArticles);

Попробуйте удалить пробелы

Потому что в вашем маршрутизаторе есть

 router.get('/articles/:last?', ArticleController.getArticles);

А вы делаете это

 router.get ('/ articles /: last?', ArticleController.getArticles);

И попробуйте удалить, потому что я понимаю, что вы передадите любой параметр?

: last?
0 голосов
/ 16 июля 2020

Я уже знал, что происходит, что-то очень смущающее, ха-ха, я не выбрал маршруты, потому что мой бэкэнд не соответствовал netlify, только мой интерфейс, поэтому я начал загружать свой бэкэнд-проект в heroku и подключил только свой Глобальная переменная для маршрутов, указывающая на ссылку, которая указывает на героку :) и готово, решено, спасибо всем за ваше время. были и теперь работает :)

...