MERN развёртывание вопроса героку - PullRequest
0 голосов
/ 26 января 2020

Я только начал с backend, и я пытаюсь развернуть backend моего приложения crud, но я застрял на маршрутах. После развертывания на героку я просто получаю часть app.get ('/'). Я не могу найти router.get ('/ getData' .. или router.post ('/ updateData' ..

вот ссылка развернутой heroku:

для app.get ('/'): https://vast-beyond-50574.herokuapp.com/

для router.get ('/ getData): https://vast-beyond-50574.herokuapp.com/getData

для router.post ('/ updateData'): https://vast-beyond-50574.herokuapp.com/updateData

Вот код для внутреннего сервера. js

const express = require('express');
var cors = require('cors');
const bodyParser = require('body-parser');
const logger = require('morgan');
const Data = require('./data');
const API_PORT = 3001;
const app = express();

app.use(cors());
const router = express.Router();

mongoose.connect(process.env.MONGODB_URI || 'mongodb://localhost/backend');
let db = mongoose.connection;
db.once('open', () => console.log('connected to the database'));
db.on('error', console.error.bind(console, 'MongoDB connection error:'));

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

router.get('/getData', (req, res) => {
    Data.find((err, data) => {
        if (err) return res.json({ success: false, error: err });
        return res.json({ success: true, data: data });
    });
});

router.post('/updateData', (req, res) => {
    const { id, update } = req.body;
    Data.findByIdAndUpdate(id, update, (err) => {
        if (err) return res.json({ success: false, error: err });
        return res.json({ success: true });
    });
});

router.delete('/deleteData', (req, res) => {
    const { id } = req.body;
    Data.findByIdAndRemove(id, (err) => {
        if (err) return res.send(err);
        return res.json({ success: true });
    });
});

router.post('/putData', (req, res) => {
    let data = new Data();
    const { id, message } = req.body;
    if ((!id && id !== 0) || !message) {
        return res.json({
            success: false,
            error: 'INVALID INPUTS',
        });
    }
    data.message = message;
    data.id = id;
    data.save((err) => {
        if (err) return res.json({ success: false, error: err });
        return res.json({ success: true });
    });
});

app.get('/', (req, res) => {
    res.send('Deployed!');
});

app.use('/api', router);
const PORT = process.env.PORT || 3000
app.listen(PORT, () => console.log(`LISTENING ON PORT ${PORT}`));```

1 Ответ

0 голосов
/ 27 января 2020

Вы используете свой маршрутизатор внутри маршрута /api (app.use('/api', router);), что означает, что все эти маршруты будут иметь префикс /api. Таким образом, вы должны иметь возможность посетить https://vast-beyond-50574.herokuapp.com/api/getData и увидеть ваши данные. (Однако я попробовал это и получил другую ошибку, которую вам придется отлаживать отдельно).

...