node.js - 测试 Postman 后端 API 时的表单数据帖子 - Node / Sequelize / Postgres
问题描述
我正在尝试使用 Postman 测试我的后端 API,并且我不断收到约束错误(因为 Sequelize),或者在这种情况下出现错误说我正在尝试为我的代码的 tect 位置行插入“类型整数的无效输入语法” . 我的这个 API 和 postgres 的模型都将各自的字段设置为 TEXT 但是它仍然在第一个字段的 Postman 表单数据上给我这个错误。
因为我有一个要插入的文件,所以我必须通过 form-data 方法执行此操作,因为我知道如何以“原始”方式执行此操作没问题。这是处理 Postman 表单数据时的常见错误吗?我的表单有文本、整数和文件
这与我的数据解析方式有关吗?我以前在教程中看到过强大的使用,我已经在使用 Multer 将我的文件存储在路由中,并且 API 正在将 URL 保存到 Postgres(理论上)。
exports.createDiveSpot = async (req, res) => {
const fileNameWithExtension = `${req.file.filename}-${req.file.originalname}`
const newPath = `./assets/diveSpot/${fileNameWithExtension}`
fs.rename(req.file.path, newPath, function (err) {
if (err) {
console.log(err)
res.send(500)
}
diveSpot.create({
diveLocation: req.body.diveLocation,
diveRegionID: req.body.diveRegionID,
diveSpotTypeID: req.body.diveLocation,
diveSpotDescription: req.body.diveSpotDescription,
photos: fileNameWithExtension,
})
.catch((err) => {
res.status(500).send({
message: err.message || 'Some error occurred while creating the post.',
})
})
路线
// create dive spot
app.post('/api/divespot/createdivespot', upload.single("photos"), controller.createDiveSpot);
模型图式
module.exports = (sequelize, Sequelize) => {
const diveSpot = sequelize.define("diveSpots", {
diveSpotID: {
type: Sequelize.INTEGER,
primaryKey: true,
autoIncrement: true,
allowNull: false
},
diveLocation: {
type: Sequelize.TEXT
},
diveRegionID: {
type: Sequelize.INTEGER
},
diveSpotTypeID: {
type: Sequelize.INTEGER
},
diveSpotDescription: {
type: Sequelize.TEXT
},
photos: {
type: Sequelize.TEXT,
}},
{
timestamps: false
}, {});
diveSpot.associate = function(models){
diveSpot.diveRegionID.belongsTo(models.diveRegion, {foreignKey: 'diveRegionID', as: 'diveRegionID'})
diveSpot.diveSpotTypeID.belongsTo(models.diveType, {foreignKey: 'diveTypeID', as: 'diveTypeID'})
};
return diveSpot;
};
解决方案
推荐阅读
- ldap - LDAP 查询不在子查询中
- javascript - 寻找比在 javascript 的 array.map 中使用 switch 语句更好的方法
- javascript - 当它缩小到移动屏幕时如何在响应式导航栏中添加搜索栏
- php - WooCommerce 分层产品
- ruby - 在发出命令“npx react-native init MyProject”时出现 Cocoapods 安装错误
- c++ - 在多线程应用程序中使用智能指针
- java - 错误请求 JSON
- python-3.x - 使用 python 将大文件发送到 S3 存储桶
- javascript - 如何将区分大小写的 object.property 从 vba 传递给 Javascript?
- r - hdm 包中的 rlassoEffects 语法不起作用?