最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

if(err)throw err;错误:非法参数:字符串,未定义

IT培训 admin 5浏览 0评论

if(err)throw err;错误:非法参数:字符串,未定义

我现在有

module.exportsparePassword = function(candidatePassword, hash, callback) {
  console.log(candidatePassword)
 console.log(hash)
  bcryptpare(candidatePassword, hash, function(err, ismatch) {
    if(err) throw err;
    callback(null, ismatch);
  });
}

现在的日志是

Server is up on port 3000
Connection has been established
Sat Jan 13 2018 14:45:36 GMT+0000 (GMT): GET /users/login
Sat Jan 13 2018 14:45:42 GMT+0000 (GMT): POST /users/login
testing1234
undefined
/Users/benbagley/Code/poetry-out-loud/models/user.js:101
    if(err) throw err;
            ^

Error: Illegal arguments: string, undefined
    at _async (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:286:46)
    at Object.bcryptpare (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:304:13)
    at Function.module.exportsparePassword (/Users/benbagley/Code/poetry-out-loud/models/user.js:100:10)
    at /Users/benbagley/Code/poetry-out-loud/routes/users.js:176:12
    at model.Query.<anonymous> (/Users/benbagley/Code/poetry-out-loud/node_modules/mongoose/lib/model.js:4056:16)
    at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:273:21
    at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:131:16
    at process._tickCallback (internal/process/next_tick.js:150:11)

在这里似乎是密码显示但不是哈希。

原版的

嗨,我收到以下错误,不知道是什么导致它

Message sent: <[email protected]>
Preview URL: /message/WlVWjq0qIgpSmhJbWloWhUGTHAp3fWC4AAAAbOQTYPu-4HjQWkI0i1uv5Ds
Sat Jan 13 2018 14:24:05 GMT+0000 (GMT): GET /users/login
Sat Jan 13 2018 14:24:24 GMT+0000 (GMT): POST /users/login
/Users/benbagley/Code/poetry-out-loud/models/user.js:99
    if(err) throw err;
            ^

Error: Illegal arguments: string, undefined
    at _async (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:286:46)
    at Object.bcryptpare (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:304:13)
    at Function.module.exportsparePassword (/Users/benbagley/Code/poetry-out-loud/models/user.js:98:10)
    at /Users/benbagley/Code/poetry-out-loud/routes/users.js:176:12
    at model.Query.<anonymous> (/Users/benbagley/Code/poetry-out-loud/node_modules/mongoose/lib/model.js:4056:16)
    at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:273:21
    at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:131:16

正在创建用户我无法登录。

这是导致错误的行

module.exportsparePassword = function(candidatePassword, hash, callback) {
  bcryptpare(candidatePassword, hash, function(err, ismatch) {
    if(err) throw err;
    callback(null, ismatch);
  });
}

这是护照的实施

passport.use(new LocalStrategy({
  usernameField: 'email'
  },
  function(email, password, done) {
    User.getUserByEmail(email, function(err, user){
      if(err) throw err;
      if(!user){
        return done(null, false, {message: 'Unknown Email Address'});
      }

      UserparePassword(password, user.password, function(err, ismatch){
        if(err) throw err;
        if(ismatch){
          return done(null, user);
        } else {
          return done(null, false, {message: 'Invalid password'});
        }
      });
    });
  }));
回答如下:

在我的情况下,错误是 -

E:\web\Projects\webapp\auth.js:15
                if(err) throw err;
                        ^

Error: Illegal arguments: number, string
    at _async (E:\web\Projects\webapp\node_modules\bcryptjs\dist\bcrypt.js:286:46)
    at Object.bcryptpare (E:\web\Projects\webapp\node_modules\bcryptjs\dist\bcrypt.js:304:13)
    at Promise (E:\web\Projects\webapp\auth.js:11:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
[nodemon] app crashed - waiting for file changes before starting...

这是因为密码是在数字,它是一个错误!我刚刚将输入的密码转换为字符串!

解决错误前的代码 -

bcryptpare(password.toString(), user.password, (err, isMatch)=>{
                if(err) throw err;
                if(isMatch){
                    resolve(user);
                }else{
                    //Password Wrong
                    reject("Auth Failed");
                }
            });

解决错误后 - 我做了什么,我在密码参数中添加了.toString()函数将其转换为字符串!

bcryptpare(password.toString(), user.password, (err, isMatch)=>{
                if(err) throw err;
                if(isMatch){
                    resolve(user);
                }else{
                    //Password Wrong
                    reject("Auth Failed");
                }
            });

我希望它对某人有帮助。

if(err)throw err;错误:非法参数:字符串,未定义

我现在有

module.exportsparePassword = function(candidatePassword, hash, callback) {
  console.log(candidatePassword)
 console.log(hash)
  bcryptpare(candidatePassword, hash, function(err, ismatch) {
    if(err) throw err;
    callback(null, ismatch);
  });
}

现在的日志是

Server is up on port 3000
Connection has been established
Sat Jan 13 2018 14:45:36 GMT+0000 (GMT): GET /users/login
Sat Jan 13 2018 14:45:42 GMT+0000 (GMT): POST /users/login
testing1234
undefined
/Users/benbagley/Code/poetry-out-loud/models/user.js:101
    if(err) throw err;
            ^

Error: Illegal arguments: string, undefined
    at _async (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:286:46)
    at Object.bcryptpare (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:304:13)
    at Function.module.exportsparePassword (/Users/benbagley/Code/poetry-out-loud/models/user.js:100:10)
    at /Users/benbagley/Code/poetry-out-loud/routes/users.js:176:12
    at model.Query.<anonymous> (/Users/benbagley/Code/poetry-out-loud/node_modules/mongoose/lib/model.js:4056:16)
    at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:273:21
    at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:131:16
    at process._tickCallback (internal/process/next_tick.js:150:11)

在这里似乎是密码显示但不是哈希。

原版的

嗨,我收到以下错误,不知道是什么导致它

Message sent: <[email protected]>
Preview URL: /message/WlVWjq0qIgpSmhJbWloWhUGTHAp3fWC4AAAAbOQTYPu-4HjQWkI0i1uv5Ds
Sat Jan 13 2018 14:24:05 GMT+0000 (GMT): GET /users/login
Sat Jan 13 2018 14:24:24 GMT+0000 (GMT): POST /users/login
/Users/benbagley/Code/poetry-out-loud/models/user.js:99
    if(err) throw err;
            ^

Error: Illegal arguments: string, undefined
    at _async (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:286:46)
    at Object.bcryptpare (/Users/benbagley/Code/poetry-out-loud/node_modules/bcryptjs/dist/bcrypt.js:304:13)
    at Function.module.exportsparePassword (/Users/benbagley/Code/poetry-out-loud/models/user.js:98:10)
    at /Users/benbagley/Code/poetry-out-loud/routes/users.js:176:12
    at model.Query.<anonymous> (/Users/benbagley/Code/poetry-out-loud/node_modules/mongoose/lib/model.js:4056:16)
    at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:273:21
    at /Users/benbagley/Code/poetry-out-loud/node_modules/kareem/index.js:131:16

正在创建用户我无法登录。

这是导致错误的行

module.exportsparePassword = function(candidatePassword, hash, callback) {
  bcryptpare(candidatePassword, hash, function(err, ismatch) {
    if(err) throw err;
    callback(null, ismatch);
  });
}

这是护照的实施

passport.use(new LocalStrategy({
  usernameField: 'email'
  },
  function(email, password, done) {
    User.getUserByEmail(email, function(err, user){
      if(err) throw err;
      if(!user){
        return done(null, false, {message: 'Unknown Email Address'});
      }

      UserparePassword(password, user.password, function(err, ismatch){
        if(err) throw err;
        if(ismatch){
          return done(null, user);
        } else {
          return done(null, false, {message: 'Invalid password'});
        }
      });
    });
  }));
回答如下:

在我的情况下,错误是 -

E:\web\Projects\webapp\auth.js:15
                if(err) throw err;
                        ^

Error: Illegal arguments: number, string
    at _async (E:\web\Projects\webapp\node_modules\bcryptjs\dist\bcrypt.js:286:46)
    at Object.bcryptpare (E:\web\Projects\webapp\node_modules\bcryptjs\dist\bcrypt.js:304:13)
    at Promise (E:\web\Projects\webapp\auth.js:11:20)
    at process._tickCallback (internal/process/next_tick.js:68:7)
[nodemon] app crashed - waiting for file changes before starting...

这是因为密码是在数字,它是一个错误!我刚刚将输入的密码转换为字符串!

解决错误前的代码 -

bcryptpare(password.toString(), user.password, (err, isMatch)=>{
                if(err) throw err;
                if(isMatch){
                    resolve(user);
                }else{
                    //Password Wrong
                    reject("Auth Failed");
                }
            });

解决错误后 - 我做了什么,我在密码参数中添加了.toString()函数将其转换为字符串!

bcryptpare(password.toString(), user.password, (err, isMatch)=>{
                if(err) throw err;
                if(isMatch){
                    resolve(user);
                }else{
                    //Password Wrong
                    reject("Auth Failed");
                }
            });

我希望它对某人有帮助。

发布评论

评论列表 (0)

  1. 暂无评论