当我使用邮递员时 console.log() 不起作用

Jon*_*der 6 javascript jwt console.log

我有一个正在尝试调试的函数,因为我收到错误。我已经解决了这个问题,因为我发现有人有类似的问题,但是能够控制台记录 JwtStrategy 中的参数之一确实很有帮助,并且让我更好地理解正在传递的内容。尽管其他人已经能够使用 Postman 及其源代码,但我似乎仍然无法安慰它。

所以我有 mongod 和 nodemon 在后面运行。我这就是函数。

module.exports = function(passport){

    let opts = {}; //options is an object literal containing options to control how token is extracted.
    opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme("jwt")  
    opts.secretOrKey = config.secret; //string containing the secret or pem encoded public key verifying the tokens signiture
    passport.use(new JwtStrategy(opts, (jwt_payload,done)=>{
        console.log(jwt_payload);  
        User.getUserById(jwt_payload._doc._id, (err, user)=>{  
            if(err){
                return done(err,false);
            }
            if(user){
                return done(null, user);
            }else{
                return done(null,done);
            }
        });
    }));
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我有一个 console.log(jwt_payload); 这是我放入 Postman Post 方法http://localhost:3000/users/authenticate 的内容:

{
    "username":"bobdylan",
    "password":"123456"
}
Run Code Online (Sandbox Code Playgroud)

正如我上面所说,它正在工作并返回我想要的正确 JSON。唯一的问题是这个 jwt_payload 不是控制台登录终端,所以我可以看到它通过。我在终端里有这个。

Server started on port 3000
yay i am connected to databasemongodb://localhost:27017/authapp
Run Code Online (Sandbox Code Playgroud)

所以“是的,我已连接”是 app.js 中的 console.log。为什么是这个打印而不是我上面的console.log?我希望拥有这种能力来解决未来的调试问题。

这是附加代码,显示它实际上正在工作,但控制台日志不工作

{
    "sucess": true,
    "token": "JWTeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1YTk2M2VmMGM3MjM4NjA0MGUwYTgwZjEiLCJuYW1lIjoiYm9iIiwiZW1haWwiOiJib2JAZHlsYW4uY29tIiwidXNlcm5hbWUiOiJib2JkeWxhbiIsInBhc3N3b3JkIjoiJDJhJDEwJHprbFBVWjI5dlJMLjRJWnlOZ1N6amVaMk1mVGVzcWdRSHIuTEkzVjhmZTIwT1NxT2p0STdLIiwiX192IjowLCJpYXQiOjE1MTk3OTk0NTcsImV4cCI6MTUyMDM5OTQ1N30.DlwzJuQayQ1zc4p8Gy5PGaE22N8ekyrBrmOhVPMkJ6Y",
    "user": {
        "id": "5a963ef0c72386040e0a80f1",
        "name": "bob",
        "username": "bobdylan",
        "email": "bob@dylan.com"
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是请求后的响应。

nok*_*eng 11

console.log对于任何在、console.info等的输出方面苦苦挣扎的人Postman

您可以在菜单上查看邮递员控制台View >> Show Postman Console

不在菜单上查看>>开发人员>>显示开发工具

打开Postman Console可以查看console.log、console.info等的输出。


Jon*_*der 0

将 user.toJSON() 更改为 {data:user}。最后,它开始打印到控制台,并发现有效负载是通过一个名为 data 的对象传入的。因此,我放置了 jwt_payload.data._id 而不是上面的内容。我认为 npm 文档已经随着更新而改变。我有另一个使用 Passport 的 Mean 应用程序,并且我使用了之前有效的 jwt_payload._doc._id 。另外,我认为我不必输入 {data:user}。我想在我刚刚有用户之前。令我惊讶的是,注册和身份验证可以与 user.toJSON() 一起使用,但不能与转到个人资料页面一起使用。我真的快要放弃了,但庆幸的是我一次又一次地尝试。