当前位置: 首页 > 知识库问答 >
问题:

BCrypt TypeError:无法读取未定义节点的属性“值”

孟永望
2023-03-14

我试图添加盐到我的密码,但我有这个错误:

(节点:12652)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“value”

(节点: 12652)UnhandledPromiseRejse警告:未处理的promise拒绝。这个错误要么是由于抛出一个没有捕获块的异步函数,要么是由于拒绝了一个没有用. cat()处理的promise。(拒绝id: 1)

(节点:12652)[DEP0018]弃用警告:未处理的promise拒绝已弃用。将来,未处理的promise拒绝将终止节点。具有非零退出代码的js进程。

我的身份验证/索引。js

const bcrypt = require('bcrypt');
const saltRounds = 10;
const myPlaintextPassword = 's0/\/\P4$$w0rD';
const someOtherPlaintextPassword = 'not_bacon';

const salt = bcrypt.genSaltSync(saltRounds);

exports.modules = {
    salt
}

我的控制器:

const Users = require('../models/users');
const bcrypt = require('bcrypt');
const { salt } = require('../auth/index');

const getUsers = ((req,res) => 
    Users.findAll()
    .then((result) => { 
        res.json(result) 
    })
    .catch((error) => { res.json(error) })
    )

const addUsers = (async (req,res,next) => {
    const name = req.body.name;
    const email = req.body.email;
    let password = bcrypt.hashSync(req.body.password, salt.value);
    const data = {
        name,
        email,
        password
    }; 
    console.log(data);
    Users.create(data)
    .then((result) => { res.json(result) })
    .catch((error) => { res.json(error) });
});

module.exports = {
    getUsers,
    addUsers,
    Users
}

共有1个答案

沈枫涟
2023-03-14

您导出了一个函数。您正试图访问它的对象,该对象当然是未定义的,因为该对象没有属性名称value。因此,它会给您一个UnhandledPromiseRejtionWarning错误。

还有一点,应该是auth/index.js中的module.exports

您应该从函数返回一个值。这就是你如何重写整个过程。

index.js

const bcrypt = require('bcrypt');
const saltRounds = 10;
const myPlaintextPassword = 's0/\/\P4$$w0rD';
const someOtherPlaintextPassword = 'not_bacon';

module.exports.salt= function(){
return bcrypt.genSaltSync(saltRounds); }

您可以在控制器级别等待salt功能。

let password=wait bcrypt。hashSync(req.body.password,salt())

就这样了。现在,我想你的代码会起作用的。

 类似资料:
  • tran.js 错误 (节点:12012)未处理的PromisejectionWarning:未处理的promise拒绝(拒绝id:1):TypeError:无法读取未定义(节点:12012)[DEP0018]弃用警告:未处理的promise拒绝被弃用。将来,未处理的promise拒绝将终止节点。具有非零退出代码的js进程。 我不知道该怎么办

  • 机器人随机崩溃并发出此错误。我已经将它编程为每当有问题时自动重新启动,并记录错误,因为它的技术上意味着不关机。 用于自动重新启动的代码如下: 我似乎也被“未经处理的承诺拒绝”...

  • 下午好,我是新反应和Node.js和我有一个问题。 我在一个网页上有一个表格,你将在那里收到旅行的数据。travel_order模型中存在这些列(Id locales、name、date、time),但是“lockations name”列旨在使用Id列出这些地方的名称。此位置的ID在“地点ID”列中列出。但是,在列出时,它给我一个错误:“TypeError:不能读取未定义的属性'Designac

  • 在类中使用其他方法时遇到问题。我正在使用express framework,必须使用Ecma脚本6。当我尝试在同一类中使用方法时,出现了一个错误: 无法读取未定义的属性“generatePassword” TypeError:无法读取属性'GeneratePassword'的未定义在createUser(E:\OpenServer\域\testNode\app\控制器\users.js: 5:13

  • 为什么我得到这个错误不能读取未定义的触摸属性? 为什么它不能读取,但它可以读取 当我们使用

  • 问题内容: 我正在制作非常简单的react应用。但是,当我尝试通过onChange事件调用父(实际上是祖父母)组件的方法时,我一直在获取。 这是触发事件的组件/表单(因此,在绑定的父组件上调用方法…是的,因为我通过道具将其从父组件传递下来,所以在方法上使用了.bound(this)。) 这是我如何通过大多数父(祖父母)组件中的props传递该方法的方法。 这是我作为父项(方法所有者和方法调用程序之