GET-запрос с локального сервера не работает - PullRequest
0 голосов
/ 24 февраля 2020

Я пытаюсь получить json файлы с запросом ax ios 'GET, но информация не получается.

В index.js (получение информации):

axios.get('http://localhost:1000/getpost/')
  .then((response) => {
    console.log(response);
  });

Конечная точка бэкэнда getpost.js (отправка информации):

var router = require('express').Router();
var Posts = require('../models/post-model.js');

router.route('/').get(() => {
    Posts.find({color: "Green"})
        .then((res) => {
            return res;
    });
});

module.exports = router; 

Я также пробовал return Posts.find({color: "Green"}); внутри функции router.route('/').get..., но возвращаемое значение отличается от значения в обещании, которое тот, который мне нужен. Я проверил, что информация на самом деле отправляется с console.log(res), но она не получена во внешнем интерфейсе - когда я регистрирую результат там, он равен нулю.

Ответы [ 3 ]

1 голос
/ 24 февраля 2020

Вы ничего не делаете с ответом на маршрут. Может быть что-то вроде ...

router.route('/').get((req, res1) => {
    Posts.find({color: "Green"})
        .then((res) => {
            res1.end(res);
        });
});

(при условии, что res - это данные в виде обычного текста, если это объект JavaScript, который вы будете делать res1.json(res) или res1.jsonp(res))

0 голосов
/ 25 февраля 2020

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

Значение router в getpost.js должно быть:

router.route('/').get((req, res) => { 
    Posts.find({color: "Green"})
       .then((posts) => res.json(posts));
});
0 голосов
/ 24 февраля 2020

Вам необходимо отобразить маршрут к getpost как:

router.route('/getpost')  

Таким образом, ваш getpost будет иметь вид:

var router = require('express').Router();
var Posts = require('../models/post-model.js');

router.route('/getpost').get(() => {
    Posts.find({color: "Green"})
        .then((res) => {
            res.send({status:200,message:res});
    });
});

module.exports = router; 
...