javascript - 无法使用 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);
};
解决方案
推荐阅读
- angular - 从 Angular 8 中的多个组件以多种方式更新组件的最佳方法是什么?
- docker - 问题 RaspberryPi 3b+ 和 docker compose:安装构建依赖项:完成状态为“错误”
- ibm-cloud - IBM Container Registry 中的公证人支持
- javascript - 我们如何使表单将提交的信息发送到电子邮件
- javascript - 如何计算圆周上两点之间的坐标点x,y(内圆)?
- python - 数据框:跨列的笛卡尔积
- c++ - 通知 cv 时 condition_variable::wait_for 是否返回 true
- spring-boot - 如何在单元测试中停止和启动嵌入式 Kafka?
- c++ - FLTK - Mac iOS 图像未显示
- python - Django 使用哪些模板加载器?