猫鼬中间件.pre没有分配我的新变量

时间:2019-02-28 17:42:26

标签: node.js mongoose qr-code mongoose-middleware

我正在尝试为公司库存,在保存项目之前,我想使用 bcrypt 对项目 _id 进行哈希处理(所以我从不公开该项目id本身),然后将其转换为base64上的 QR代码,并将其保存到数据库中的字符串中。

我已经做到了所有这些,但是当将项目保存在数据库中时,我要操作的字段没有使用base64 png填充。

(这是我第一次在StackOverflow上提问,关于问题格式本身的任何反馈都将收到。只需几个月的编程时间。)

 ItemSchema.pre("save", function (next) {
    let item = this;
    let hashed_id = bcrypt.hashSync(String(item._id), saltRounds);
    QRCode.toDataURL(hashed_id, (err, url) => {
        png_stirng_image = String(url)
        item.qr_code = png_stirng_image
    })
    next();
    });

    const newItem = new Item({
        name: "Objeto uno", 
        brand: "Maquintosh", 
        category: "COMPUTADORA",
        date_bought: "2013-06-01",
        serial_number:"VADFFVWER", 
        current_owner: "USER ID",
        qr_code: ""
    });

    return newItem.save()
        .then(result =>{
            console.log("created")
            mongoose.connection.close()
        })
        .catch(error => {
            console.log(error);
            mongoose.connection.close()
            throw error;
 });    

0 个答案:

没有答案