Node.js `express`-应用程序chrome邮递员总是给出错误而不是响应

Node.js `express`-应用程序chrome邮递员总是给出错误而不是响应,node.js,express,mongoose,mean-stack,Node.js,Express,Mongoose,Mean Stack,请有人帮我在这里找到问题: 当我试图发布我的用户名和密码时,我总是收到以下错误: requester.js:6211 POSThttp://localhost:7000/api/login 403(禁止)发送@requester.js:6211(匿名函数)@requester.js:4811dispatch@jquery.min.js:3i@jquery.min.js:3 requester.js:1056定义模式 我根本不知道这里的问题是什么。 以下是post man请求屏幕截图: 这是我的

请有人帮我在这里找到问题:

当我试图发布我的
用户名
密码
时,我总是收到以下错误:
requester.js:6211 POSThttp://localhost:7000/api/login 403(禁止)发送@requester.js:6211(匿名函数)@requester.js:4811dispatch@jquery.min.js:3i@jquery.min.js:3
requester.js:1056定义模式

我根本不知道这里的问题是什么。 以下是post man请求屏幕截图:

这是我的api文件:

var User = require('../models/user');
var config = require('../../config');

var secretKey = config.secretKey;

var jsonwebtoken = require("jsonwebtoken");


function createToken ( user ) {

    var token = jsonwebtoken.sign({
        _id : user.id,
        name : user.name,
        username: user.username
    }, secretKey, {
        expiresIn  : "1440m"
    })

    return token;
}

module.exports = function( app, express ) {

    var api = express.Router();

    api.post('/signup', function( req, res ) {

        var user = new User({
            name : req.body.name,
            username : req.body.username,
            password : req.body.password
        });

        user.save( function( err ) {
            if( err ) {

                res.send( err );
                return;

            }

            res.json({message : "User has been created!"});
        });

        api.get('/users', function( req, res ) {

            User.find({}, function( err, users ) {

                if( err ) {
                    res.send( err );
                    return;
                }

                res.json( users );

            })

        });

        api.post('/login', function( req, res ) {

            User.findOne({
                username : req.body.username
            }).select('password').exec(function( err, user ) {

                if( err ) throw err;

                if(!user) {
                    res.send({ message : "User doesnt Exist!"})
                } else if( user ) {

                    var validPassword = user.comparePassword( req.body.password );

                    if(!validPassword) {
                        res.send({ message : "Invalid Password"});
                    } else {

                        var token = createToken( user );

                        res.json({
                            success : true,
                            message : "Successfuly loged In!",
                            token : token
                        })

                    }
                }

            })

        })

    });

    //middleware

    api.use(function(req, res, next) {


        console.log("Somebody just came to our app!");

        var token = req.body.token || req.param('token') || req.headers['x-access-token'];

        // check if token exist
        if(token) {

            jsonwebtoken.verify(token, secretKey, function(err, decoded) {

                if(err) {
                    res.status(403).send({ success: false, message: "Failed to authenticate user"});

                } else {
                    req.decoded = decoded;
                    next();
                }
            });
        } else {
            res.status(403).send({ success: false, message: "No Token Provided"});
        }

    });

    //Destination B

    api.get("/", function( req, res ) {

        res.json("Hello World!");

    })

    return api;

}

路由应该是“api/signup”,而不仅仅是“/signup”

路线定义不正确。而不是:

 api.post('/signup', function( req, res ) {
...
        api.get('/users', function( req, res ) {
   })
})
应该是:

 api.post('/signup', function( req, res ) {
...
})
api.get('/users', function( req, res ) {
...
})

路由应该是“api/signup”,而不仅仅是“/signup”

路线定义不正确。而不是:

 api.post('/signup', function( req, res ) {
...
        api.get('/users', function( req, res ) {
   })
})
应该是:

 api.post('/signup', function( req, res ) {
...
})
api.get('/users', function( req, res ) {
...
})

您应该从post注册回调中取出get和post。另外,路由应该是/api/login而不是/login。“你应该从post注册回调中取出get和post”-你能进一步解释我吗?api.get(“/users”…在回调函数中。将其取出以直接在导出函数中确定,有意义,让我尝试一下,有效。请将您的建议作为答案发布以接受。请更新我的代码。您应该从post注册回调函数中取出get和post。此外,路径应该是/api/login,而不是/login。“你应该从post注册回调中取出get和post”-你能进一步解释我吗?api.get(“/users”…在回调中。取出它直接在导出函数中确保,有意义,让我试试,工作正常。你能将你的建议作为回答发布以接受吗?请更新我的代码