向数据库写入数据时出现TypeError: .create is not a function错误
已解决:数据库写入失败问题
问题描述
请求能正常到达服务器,控制台可打印用户输入值,但尝试将数据写入数据库表时出错。原以为是前端传值到后端时出现空行问题,实际已定位原因。
解决原因
引用了错误的Model文件——因文件名相近,开发时没注意到引入了错误的模型,导致无法正确与数据库表映射,进而写入失败。
相关代码(供参考)
实际正确的Model代码
module.exports = (sequelize, Sequelize) => { const KitchenAssignment = sequelize.define("kitchenAssignments", { kAName: { type: Sequelize.STRING }, startTime: { type: Sequelize.TIME }, endTime: { type: Sequelize.TIME }, minRoleRequired: { type: Sequelize.ENUM("Leader", "Aid", "Cook", "Junior", "Dishwasher") } }); return KitchenAssignment; }
前端提交代码
export default { name: 'sendAssignment', data(){ return { kAName: '', startTime: '', endTime: '', minRoleRequired:'' }; }, methods: { sendInput(){ let kitchenAssignment = { kAName: this.kAName, startTime: this.startTime, endTime: this.endTime, minRoleRequired: this.minRoleRequired } axios.post('/api/auth/kitchenAssignments', kitchenAssignment) .then(response => { console.log(response.data); }) .catch(error => { console.log(error); }); } } }
后端接口代码
const bodyParser = require ('body-parser'); //const { default: KitchenAssignment } = require('../../frontend/src/models/kitchenAssignment'); //const kitchenAssignment = require('../models/kitchenAssignment.model'); const db = require("../models"); const kitchenAssignment = db.KitchenAssignment; module.exports = function(app) { app.use(bodyParser.json()); app.post('/api/auth/kitchenAssignments', (req, res) => { KitchenAssignment.create({ kAName: req.body.kAName, startTime: req.body.startTime, endTime: req.body.endTime, minRoleRequired: req.body.minRoleRequired }) .then(KitchenAssignment => res.json(KitchenAssignment)) .catch(error => { console.log(error); res.status(500).json({ message: "ERROR STORING INPUT."}) }); }); }
内容的提问来源于stack exchange,提问作者user20909867
相关产品推荐
相关产品推荐

