NodeJs路由不工作

我试图创build一个apiloginnodejs.but但是当我检查login路由通过Http请求者显示cannot“POST / api / authenticate”

项目结构:

在这里输入图像说明

server.js文件:

var express = require('express'); var app = express(); var port = process.env.PORT||8080; var morgan = require('morgan'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var router = express.Router(); var appRoutes = require('./app/routes/api')(router); var path = require('path'); app.use(morgan('dev')); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(express.static(__dirname + '/public')); app.use('/app',appRoutes); mongoose.connect('mongodb://localhost:27017/tutorial', function(err){ if(err) { console.log('Not connected to the Database: '+ err); } else { console.log('Succesfully connected to Mongodb'); } }); app.get('*',function(req,res){ res.sendFile(path.join(__dirname + '/public/app/views/index.html')); }); app.listen(port, function () { console.log('Running the server on port ' + port); }); 

/app/models/user.js:

 var mongoose = require('mongoose'); var Schema = mongoose.Schema; var bcrypt = require('bcrypt-nodejs'); var UserSchema = new Schema({ username: { type: String, lowercase: true, required: true, unique: true }, password: { type: String, required: true }, email: { type: String, lowercase: true, required: true, unique: true } }); UserSchema.pre('save', function(next) { var user = this; bcrypt.hash(user.password, null, null, function(err, hash) { if (err) return next(err); user.password = hash; next(); }); next(); }); module.exports = mongoose.model('User', UserSchema); 

/app/routes/api.js:

 var User =require('../models/user'); module.exports = function(router) { //http://localhost:8080/api/users //User Registration Route router.post('/users', function(req,res){ var user = new User(); user.username = req.body.username; user.password = req.body.password; user.email = req.body.email; if (req.body.username == null || req.body.username == '' || req.body.email == null || req.body.email == ''|| req.body.password == null || req.body.password == '' ){ res.send('Ensure Username, Email and Password is provided'); } else { user.save(function(err){ if(err){ res.send('Username or Email already exist'); } else { res.send('User created!!!') } }); } }); //User login Route //http://localhost:8080/api/authenticate router.post('/authenticate',function(req,res) { res.send('Testing the route'); }); return router; } 

最后是HTTP请求者输出(它在/app/models/api.js中的注册api工作正常)

在这里输入图像说明

原因似乎是这样的:

 app.use('/app',appRoutes); 

这添加了你的路线,前缀为/app ,应该是/api

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