使用Sequelize + multer在SQL中记录图像名称的问题



我正试图将用户图像写入nodejs + sequelize + sqlServer服务器。该功能的第一部分是将完整的图像正确地记录到服务器。但是我无法将文件名保存在数据库的img字段中。在postman中,给了我代码200,然后我让用户不要在字段中记录文件名。

提前感谢。

app.put('/upload/:tipo/:idUsuario', upload.single('imagen'), (req, res) => {
try {
res.send(req.file);
const { tipo, idUsuario } = req.params;
usuariosModel.findOne({ where: { idUsuario: idUsuario } })
.then(updateimg => {
updateimg.update({ img: req.file.filename })
.then(() => {
res.status(200).send({ updateimg });
})
.catch(error => {
res.status(500).send({ msg: 'Ocurrió un error al actualizar el usuario' });
})
})
.catch(error => {
console.log(error);
});
} catch (err) {
console.log(err);
}
});

user.js: model

"use strict";
const { Model } = require("sequelize");
module.exports = (sequelize, DataTypes) => {
class user extends Model {
}
user.init({
name: { type: DataTypes.STRING, },
img: { type: DataTypes.STRING, },
}, {
sequelize,
modelName: "user",
defaultScope: {
attributes: { exclude: ["createdAt", "updatedAt"] }
}
});
return user;
};

router.js

router.put('/upload/:idUsuario', upload.single('imagen'), (req, res) => {
try {

// res.send(req.file); // must comment this
const { idUsuario } = req.params;
db.user.findOne({ where: { id: idUsuario } })
.then(updateimg => {
updateimg.update({ img: req.file.filename })
.then(() => {
res.status(200).send({ updateimg });
})
.catch(error => {
res.status(500).send({ msg: 'Ocurrió un error al actualizar el usuario' });
})
})
.catch(error => {
console.log(error);
});
} catch (err) {
console.log(err);
}
});

https://github.com/nkhs/node-sequelize/blob/stack-66495393/api/routes/game.js

我用post man
http://prntscr.com/10dt3jq
http://prntscr.com/10dt4o8

进行了测试

最新更新