Я пытаюсь провести инвентаризацию для своей компании, прежде чем сохранить элемент, я хочу хэшировать элемент _id с помощью bcrypt (поэтому я никогда не выставляю сам идентификатор элемента), а затем преобразовать его в QR-код на base64 и сохранить в строку в базе данных.
Мне удалось все это сделать, но когда элемент сохраняется в базе данных, поле, которым я хочу манипулировать, не заполняется с помощью 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;
});