首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Body-Parser给出未定义的

Body-Parser给出未定义的
EN

Stack Overflow用户
提问于 2017-01-22 10:15:03
回答 1查看 674关注 0票数 0

我的server.js使用以下代码对用户进行身份验证:

代码语言:javascript
复制
//API ROUTES
var apiRoutes = express.Router();
//route to auth user
apiRoutes.post('/authenticate', function(req,res){
    //find the user
    User.findOne({
        name: req.body.name
    }, function(err,user){
        if(err) throw err;
        if(!user){
            res.json({ success: false, message: 'Authentication failed. User not found!' });
        } else if(user){
            //check if password matches
            if(user.password != req.body.password){
                res.json({ success: false, message: 'Authentication failed. Wrong password!' });
            } else{
                //user found and password is right
                //toke creation
                var token = jwt.sign(user, app.get('superSecret'),{
                    expiresInMinutes: 1440 // = 24h
                });

                //return information including token
                res.json({
                    success: true,
                    message: 'Enjoy your token!',
                    token: token
                });
            }
        }
    });
});

但是,即使插入正确的Id,输出也始终是“身份验证失败。用户未找到!”

我使用以下代码在MongoDb中插入用户:

代码语言:javascript
复制
app.get('/setup',function(req,res){
    var nick = new User({
        name: 'patro',
        password: 'pass',
        admin: true
    });
    nick.save(function(err){
        if(err)throw err;
        console.log('user saved');
        res.json({success : true});
    });
});

并且用户被正确地保存是因为使用以下代码:

代码语言:javascript
复制
apiRoutes.get('/users',function(req,res){
    User.find({}, function(err,users){
        res.json(users);
    });
});

通过使用POSTman,我可以看到正确地保存了用户:

代码语言:javascript
复制
  {
    "_id": "5884844c338f4813ab884eac",
    "name": "patro",
    "password": "pass",
    "admin": true,
    "__v": 0
  }

名称永远不匹配,因为req.body.nameundefined作为值返回。为什么?我该如何看待这个名字的价值?

body解析器用于如下所示:

代码语言:javascript
复制
...
var app = express();
var bodyParser = require('body-parser');
...
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

//请不要评论参数的不散列,这将是下一步:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-22 16:36:05

下面是一个邮递员应用程序的截图,你应该如何发布请求。如果有什么不清楚的地方请发表评论

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41789698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档