首页 > 解决方案 > 无法使用 sequelize 和 express 发布

问题描述

我无法让我的 post meetingtype 路线正常工作。问题似乎在我的模型和我的 DAO 之间,因为我的一些代码调整得到了 MeetingType.create is not a function 错误。目前我只是在失眠中无法发布/api/meetingtype。Sequelize create is not a function answer on stack overflow 无济于事。这是我的代码:

//database/index
const { Sequelize } = require('sequelize');
const DB = new Sequelize({
  dialect: 'sqlite',
  storage: 'C:/Users/bubblegum/Desktop/programming projects/Oconnell/database/db.db',
  define: {timestamps: false}
  }
); 
module.exports.DB = DB;
//models/meetingtype.js
'use strict';
const DB = require('../database/index');
const { Sequelize, Model, DataTypes, INTEGER} = require('sequelize');
module.exports = (DB, DataTypes) => {
  class MeetingType extends Model {
    static associate(models) {
      // define association here
    }
  };
  MeetingType.init({
    MeetingTypeID: {
      type: DataTypes.INTEGER,
      primaryKey: true,
      autoIncrement: true
    },
    MeetingTypeDescription: DataTypes.STRING
  }, {
    DB,
    modelName: 'MeetingType',
  });
  return MeetingType;
};
/DAO/MeetingTypeDAO.js
const Sequelize = require('sequelize'); // attempt to get create to work
const DB = require('../database/index').DB;
const MeetingType = require('../models/MeetingType');
var MeetingTypeDao = {
     create: create
}

function create(MeetingType) {   
     
    MeetingType.create(MeetingType).then(NewMeetingType => { //MeetingType is json of not autoincrement properties
         return NewMeetingType;
     });
}
module.exports = MeetingTypeDao;
//controllers/MeetingTypeController.js
const MeetingTypeDao = require('../DAO/MeetingTypeDao');
var MeetingTypeController = {
    addMeetingType: addMeetingType
}
function addMeetingType(req, res) {
    MeetingTypeDao.create(req.body). //json of non autoincrement MeetingType properties
    then((MeetingType) => {
        res.send(MeetingType);
    })
    .catch((error) => {
        console.log(error);
    });
}
module.exports = MeetingTypeController;
//routers/MeetingTypeRouter
const Express = require('express');
const router = Express.Router();
const MeetingTypeController = require('../Controllers/MeetingTypeController');
router.post('/', MeetingTypeController.addMeetingType);
module.exports = router;
//app.js
const Express = require('express');
const { Sequelize } = require('sequelize');
const {DB} = require('./database');
let app = Express();
const MeetingTypeRouter = require('./routers/MeetingTypeRouter');
app.use(Express.urlencoded({ extended: true }));
app.use(Express.json());
app.use('api/meetingtype', MeetingTypeRouter);

DB.authenticate().then(()=>{
  console.log('Connection has been established successfully.');
}).catch(err => console.log("Error: " + err));
const PORT = process.env.PORT || 3000;
try {
  app.listen(PORT, console.log(`Server started on port ${PORT}`));  
} catch (error) {
  console.log("Error: " + error);
};
   







  

 
  
 
  
 

标签: javascriptnode.jssqliteexpresssequelize.js

解决方案


推荐阅读