nodejs表达路由导致错误404

时间:2019-11-26 15:35:49

标签: node.js express

路由不起作用。我一直在寻找原因,但找不到问题所在。在服务器运行的情况下,邮递员不断出现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);

2 个答案:

答案 0 :(得分:1)

404状态:“路由未找到”,您正在尝试的网址未找到

在您的应用js中,在api之前加斜杠/

app.use('/api/items', items);

网址为:

http://localhost:5000/api/items

答案 1 :(得分:0)

请先了解基本路线。 这是https://expressjs.com/en/guide/routing.html

当您这样运行应用程序时 http://localhost:3000 应用程序正是在此网址上运行。如果您路由其他类似“ api / items”的内容,则表示 http://localhost:3000api/items。 因此,首先创建任何路由,添加一个“ /”,然后看起来像 http://localhost:3000/api/items