快速路由器不适用于发布请求

我正在开始整个MEAN堆栈的事情。 我正在编写一个小testing/初学者的应用程序来学习基础知识。 我目前正在尝试不同路线的快递路由器。 我有一些麻烦让路线正常工作。

当我去localhost:8000 / api它工作得很好。 但是,当我尝试访问localhost:8000/api/users它返回一个404错误:(

这是我的代码

 var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var morgan = require('morgan'); var mongoose = require('mongoose'); var port = process.env.PORT || 8000; var User = require('./app/models/user'); mongoose.connect('mongodb://localhost:27017/ApiDataBase'); app.use(bodyParser.urlencoded({ extended: true})); app.use(bodyParser.json()); app.use(function(req, res, next) { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Methods', 'GET', 'POST'); res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type, \ 22 Authorization'); next(); }); app.use(morgan('dev')); // testing if express runs app.get('/', function(req, res) { res.send('Welcome to this awesome site!'); }); // creating new instance of the router var apiRouter = express.Router(); apiRouter.use(function(req, res, next){ console.log('Somebody came to vist'); next(); }); // testing the router apiRouter.get('/', function(req, res) { res.json({ message: 'WWWUUUUHHÚÚÚ Welcome!'}); }); // I'm not getting this part to work apiRouter.route('/users') .post(function(req, res) { var user = new User(); user.name = req.body.name; user.username = req.body.username; user.password = req.body.password; user.save(function(err) { if(err){ if(err.code == 11000) return res.json({ success: false, message: 'Þessi notandi er þegar til'}); else return res.send(err); } res.json({ message: 'Notandi stofanður'}); }); }) app.use('/api', apiRouter); app.listen(8000); console.log('Magic happens on port' + port); 

当我尝试访问localhost:8000 / api / users时,它返回一个404错误

你没有到localhost:8000/api/usersGET路由,你有一个POST路由:

 apiRouter.route('/users') .post(function(req, res) { 

这就是说,当你发送GET请求到localhost:8000/api/users ,express找不到路由,因为你不存在。 您应该根据POST请求进行testing。

你在app.get('/'...)中声明两次端点'/',再一次在apiRouter.get('/'...

删除这个块,它应该工作:

 // testing the router apiRouter.get('/', function(req, res) { res.json({ message: 'WWWUUUUHHÚÚÚ Welcome!'}); });