尝试发布到mysql数据库时出现错误:“无法读取未定义的属性'create'

时间:2019-03-30 03:34:36

标签: node.js sequelize.js mysql2

我正在尝试使用sequelize从html表单导出数据,并收到以下错误:无法读取未定义的属性“ create”。我可以从表单中的对象中输出数据。

routes.js


var db = require("../models");

module.exports = function(app) {
app.post("/api/orders", function(req,res) {
console.log(req.body);

db.orders.create({
  date: req.body.date,
  billingAddress: req.body.billingAddress,
  city: req.body.city,
  state: req.body.state,
  email: req.body.email,
  cupcakeType: req.body.cupcakeType,
  quantity: req.body.quantity,
  specialInstructions: req.body.specialInstructions,
  totalPrice: req.body.totalPrice,
  card: req.body.card,
  cardNumber: req.body.cardNumber,
  cvc: req.body.cvc,
  CustomerID: req.body.CustomerID
})
  .then(function(dbOrders){
  console.log(dbOrders);
  res.json(dbOrders);
});
});

orders.js


module.exports = function(sequelize, DataTypes) {

var Orders = sequelize.define("Orders", {

date: {
  type: DataTypes.DATEONLY,
  allowNull: false
},
billingAddress: {
  type: DataTypes.STRING,
  allowNull: false,      
},
city: {
type: DataTypes.STRING,
allowNull: false, 
},
state: {
  type: DataTypes.STRING,
  allowNull: false, 
  }, 
email: {
    type: DataTypes.STRING,
    allowNull: false,
    // validate: {
    //   isEmail: true
    //   } 
    }, 

期望创建名为“ cupcakes”的数据库和名为“ orders”的表的帖子

2 个答案:

答案 0 :(得分:0)

看看您的orders.js文件。好像您声明了此变量

var Orders = sequelize.define("Orders", {...

您正在尝试访问db.orders

看起来您应该尝试访问db.Orders

我经常使用续集。他们的模型都以大写字母开头。您也许可以进行其他配置,但这是默认行为。

如果仍然遇到问题,请尝试在console.log上进行db,然后看看会得到什么。

console.log(db)

答案 1 :(得分:0)

只需尝试

add_roles()