Почему мой http-запрос не возвращает ответ - PullRequest
0 голосов
/ 09 января 2020

У меня есть несколько маршрутов в моем API, которые работают отлично, но, пытаясь реализовать систему комментариев, я не получаю никакого ответа ни от перехода к url ​​(backend узла), ни от почтальона.

Мой сервер JS работает следующим образом и работает для почты, команд, пользователей, но не работает для комментариев.

Сервер. js Файл ниже:

    //load server
const express = require('express');
var cors = require('cors');
const app = express();
const morgan = require('morgan');
const mysql = require('mysql');
const bodyParser = require('body-parser');
const multer = require('multer');

//db

const db = require('./config/db');

  db
  .authenticate()
  .then(() => {
    console.log('Connection has been established successfully.');
  })
  .catch(err => {
    console.error('Unable to connect to the database:', err);
  });

//image upload 
const storage = multer.diskStorage({
    destination: function (req, file, cb) {
    cb(null, 'public')
  },
  filename: function (req, file, cb) {
    let date = new Date(Date.now());

    cb(null, date.getDay() + '-' + date.getDate() + '-' + file.originalname )
  }
})

var upload = multer({ storage: storage }).single('file')

const port = process.env.PORT || 5000;


app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}))
app.use(cors());
app.use(express.static('./public'))
app.use(morgan('combined'));

const router = require('./routes/user.js')
const postRoute = require('./routes/post.js');

app.use('/posts', require('./routes/post.js'));
app.use('/teams', require('./routes/teams.js'));
app.use('/comments', require('./routes/comments.js'));



app.use(router)


app.listen(port, () => console.log(`Listening on port ${port}`));

Ниже приведены мои маршруты API:

const express =require('express');
const mysql = require('mysql');
const db = require('../config/db');
const Comments = require('../models/Comments');
// const connection = getConnection()
const router = express.Router();
const Sequelize = require('sequelize');

router.get('/', (req, res) => 
Comments.findAll().then( comments => {
    console.log(comments);
    res.json(comments);
    // res.sendStatus(200);
})
.catch(err => console.log(err)));


router.get('/:id', (req, res) => 
Comments.findAll({
    where: {
        postId: req.params.id
    }
}).then( comments => {
    console.log(comments);
    res.json(comments);
    // res.sendStatus(200);
})
.catch(err => console.log(err)));



router.post('/add/:id', (req, res) => {

    Comments.create(req.body).then(comments => {
        console.log(req.body)
        res.json(comments);
        console.log(comments)
    })
    .catch(err => console.log(err))
});


module.exports = router; 

Я публикую свой маршрут Api команд, чтобы показать, что у меня есть это прекрасно сработало для меня:

    //will contain all user routes
const express =require('express');
const mysql = require('mysql');
const db = require('../config/db');
const Teams = require('../models/Teams');
// const connection = getConnection()
const router = express.Router()
const Sequelize = require('sequelize');



//find all teams
router.get('/', (req, res) => 
Teams.findAll().then( team => {
    console.log(team);
    res.json(team);
    // res.sendStatus(200);
})
.catch(err => console.log(err)));


//find Team  by ID
router.get('/:id', (req, res) => 
Teams.findAll({
    where: {
        id: req.params.id
    }
}).then( team => {
    console.log(team);
    res.json(team);
    // res.sendStatus(200);
})
.catch(err => console.log(err)));

//add users image 



module.exports = router; 

1 Ответ

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

Это было потому, что он ожидал запроса, а я не давал его. Нужно просто вернуть ответ.

router.get('/').then(res => {
Comments.findAll().then(comments => {
    console.log(comments);
    res.json(comments.data);
})
})
...