我的节点服务器出现404错误

时间:2018-08-05 21:54:18

标签: node.js angular ionic3

所以我正在制作一个Ionic应用程序,并且我有一个连接到猫鼬数据库的节点服务器,但是,我的Node服务器一直返回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

And this is a screenshot from the console in the app

我不确定为什么会这样,这是我的服务器文件: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.log("Fetching Courses")

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

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

 app.post('api/courses', function(req, res){
     console.log("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.log("Listening on port 8080")

当我运行节点server.js时,我在终端“在8080端口上监听”中看到了,所以我知道一切都很好。但是,当我继续进行http://localhost:8080时,出现错误无法获取/。

感谢所有帮助!

2 个答案:

答案 0 :(得分:0)

您必须定义根(/)路由。它不会免费提供给您。尝试创建一个:

app.get('/', function(req, res){
     console.log("Root Route")
     res.json({ message: "hello world" });
});

答案 1 :(得分:0)

app.get('api/courses',更改为app.get('/api/courses',

您需要在应用程序路由中添加斜杠(/)。

有关路线的更多信息,请参见此处:https://expressjs.com/en/guide/routing.html