路由不起作用。我一直在寻找原因,但找不到问题所在。在服务器运行的情况下,邮递员不断出现404错误。
这是我的server.js
const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
const items = require('./routes/api/items');
const app = express();
// Bodyparser Middleware
app.use(bodyParser.json());
// DB Config
const db = require ('./config/keys').mongoURI;
// Connect to Mongo
mongoose.connect(db, {useNewUrlParser: true} )
.then(() => console.log('MongoDB Connected...'))
.catch(err => console.log(err));
//Routes
app.use ('api/items', items);
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server started on port ${port}`));
这是包含路由的文件。位于/ routes / api
const express = require('express');
const router = express.Router();
// Item Model
const Item = require('../../models/Item');
// @route GET api/items
// @desc Get All Items
// @access Public
router.get('/', (req, res) => {
Item.find()
.sort({ date: -1 })
.then(items => res.json(items));
});
module.exports = router;
文件模型/item.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Create Schema
const ItemSchema = new Schema({
name: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
});
module.exports = Item = mongoose.model('item', ItemSchema);
答案 0 :(得分:1)
404状态:“路由未找到”,您正在尝试的网址未找到
在您的应用js中,在api之前加斜杠/
app.use('/api/items', items);
网址为:
答案 1 :(得分:0)
请先了解基本路线。 这是https://expressjs.com/en/guide/routing.html
当您这样运行应用程序时 http://localhost:3000 应用程序正是在此网址上运行。如果您路由其他类似“ api / items”的内容,则表示 http://localhost:3000api/items。 因此,首先创建任何路由,添加一个“ /”,然后看起来像 http://localhost:3000/api/items