Ошибка 404 с моего сервера узла

поэтому я делаю приложение Ionic, и у меня есть сервер узла, который подключен к базе данных мангуста, однако мой сервер узла продолжает возвращать ошибку 404. Следующее из моего терминала Node:

GET / 404 2.975 ms - 139
GET /favicon.ico 404 0.427 ms - 150
GET /api/courses 404 1.415 ms - 150
GET /api/courses 404 0.196 ms - 150
OPTIONS /api/courses 204 3.840 ms - 0
POST /api/courses 404 40.388 ms - 151
GET /api/courses 404 0.247 ms - 150
GET /api/courses 404 0.201 ms - 150
GET /api/courses 404 0.271 ms - 150
GET /api/courses 404 0.188 ms - 150
GET /api/courses 404 0.184 ms - 150
GET /api/courses 404 0.154 ms - 150
GET / 404 0.190 ms - 139
GET / 404 0.198 ms - 139
GET /api/courses 404 2.366 ms - 150
GET /api/courses 404 0.195 ms - 150
GET /api/courses 404 0.195 ms - 150
GET /api/courses 404 0.410 ms - 150
GET /api/courses 404 0.204 ms - 150
OPTIONS /api/courses 204 0.727 ms - 0
POST /api/courses 404 3.987 ms - 151
GET / 404 0.168 ms - 139
GET /api/courses 404 0.209 ms - 150

А это скриншот из консоли в приложении

Я не уверен, почему это происходит, это мой серверный файл: server.js:

var express =  require('express');
var app = express();
var mongoose = require('mongoose');
var morgan = require('morgan');
var bodyParser = require('body-parser');
var methodOverride = require('method-override');
var cors = require('cors');

mongoose.connect('mongodb://127.0.0.1:27017/courses');

app.use(morgan('dev'));
app.use(bodyParser.urlencoded({'extended': 'true'}));
app.use(bodyParser.json());
app.use(bodyParser.json({ type: 'application/vnd.api+json' }));
app.use(methodOverride());
app.use(cors());

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header('Access-Control-Allow-Methods', 'DELETE, PUT');
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
 });

 var Course = mongoose.model('Course', {
    coursecode: String,
    email: String,
    name: String
 })

 //Routes

 app.get('api/courses', function(req, res){
     console.info("Fetching Courses")

     Course.find(function(err, courses){
         if (err)
            res.send(err)

         res.json(courses);
     });
 });

 app.post('api/courses', function(req, res){
     console.info("Creating Entry in course");

     Course.create({
         title: req.body.title,
         email: req.body.email,
         name: req.body.name,
         done: false

     }, function(err, courses){
         if (err)
            res.send(err);

         Course.find(function(err, courses){
             if (err)
                res.send(err)

             res.json(courses);
         });
     });
});

app.delete('api/courses/:course_id', function(req, res){
    Course.remove({
        _id: req.params.course_id}, function(err, course){
        });
    });

app.listen(8080);
console.info("Listening on port 8080")

Когда я запускаю node server.js, я вижу в терминале «Прослушивание порта 8080», поэтому я знаю, что все работает нормально. Однако когда я перехожу на http: // локальный: 8080, я получаю сообщение об ошибке CANNOT GET /.

Цените всю помощь!

Вы не определили корневой маршрут ... вы пробовали перейти на /api/courses?

Jordan Kasper 06.08.2018 00:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
1 652
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы должны определить корневой (/) маршрут. Это не дает вам это бесплатно. Попробуйте создать один:

app.get('/', function(req, res){
     console.info("Root Route")
     res.json({ message: "hello world" });
});
Ответ принят как подходящий

замените app.get('api/courses', на app.get('/api/courses',.

Вам нужно добавить косую черту (/) в маршрут приложения.

Подробнее о маршрутах см. Здесь: https://expressjs.com/en/guide/routing.html

Другие вопросы по теме