如何修复model.create()不是Sequelize ORM中的函数错误
我是nodejs的新手,所以请放轻松我。我正在设置一个nodejs服务器,使用Sequelize连接到mysql数据库。我目前有一个错误“model.create不是一个功能”,我在谷歌上找不到任何相关的修复。请帮帮我。提前致谢
这是我的model.js文件
const sequelize = require('sequelize');
module.exports = (sequelize, DataTypes) => {
const Data = sequelize.define('Data',
{
oxyVal: {
type: DataTypes.DOUBLE,
allowNull: false
},
mqState: {
type: DataTypes.BOOLEAN,
allowNull: false
},
date: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: DataTypes.NOW
},
id: {
type: DataTypes.INTEGER,
allowNull: false,
autoIncrement: true,
primaryKey: true
}
});
return Data;
}
这是我的index.js文件
const express = require('express');
const morgan = require('morgan');
const bodyParser = require('body-parser');
const Sequelize = require('sequelize');
const Data = require('../models/data');
const app = express();
const port = 5500;
// I will now connect to my database
mySequelize = new Sequelize('Fast', 'root', '[password]', {
host: '127.0.0.1',
dialect: 'mysql',
operatorsAliases: false,
pool: {
max: 5,
min: 0,
acquire: 30000,
idle: 10000
}
});
// Test database connection here
mySequelize.authenticate().then(() => {
console.log('Database connected successfully');
}).catch((err) => {
console.error('Failed to connect to database \n ' + err);
})
app.use(morgan('dev'));
//app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser());
app.get('/');
app.post('/', (req, res, next) => {
const myData = Data.create({
oxyVal: req.body.oxyVal,
mqState: req.body.mqState,
time: req.body.time,
time: req.body.id
}).then(JSON.parse(myData)).myData.save().then((result) => {
console.log(result);
}).catch((err) => {
console.log(err);
});;
res.send('Record successfully saved');
console.log(myData);
});
app.listen(port)
console.log("Server satrted on " + port + " .....");
回答如下:
通过执行以下三项操作,我能够使您的代码正常工作:
1)将model.js
重命名为data.js
并将其与index.js
放在同一目录中。
2)改变这个:
const Data = require('../models/data');
对此:
const db = require('./data');
3)创建数据库'fast',用户'toor',密码'password',并授予'toor'用户对'fast'数据库的完全访问权限。然后连接线看起来像这样:
mySequelize = new Sequelize('fast', 'toor', 'password', {
请看一下sequelize CLI,它可以帮助您方便地布局目录结构:http://docs.sequelizejs/manual/tutorial/migrations.html#the-cli