所以我正在制作一个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时,出现错误无法获取/。
感谢所有帮助!
答案 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