我在做一个网上论坛,我做了写作功能,我的写作形式分为标题和内容,正常情况下,它工作得很好,但是如果我在内容上输入的时间长一点,就会出错。我用的是mysql和sequelize。这是错误信息
,这是我的代码
router.post('/', isLoggedIn, upload2.none(), async (req, res, next) => {
try{
const post = await Post.create({
title: req.body.title.toLowerCase(),
content: req.body.editordata,
img: req.body.url,
UserId: req.user.id,
});
res.redirect('/');
} catch (error) {
console.error(error);
next(error);
}
});
(code发生哪个错误)
我的帖子模块看起来像这样
const Sequelize = require('sequelize');
module.exports = class Post extends Sequelize.Model {
static init(sequelize) {
return super.init({
title: {
type: Sequelize.STRING(100),
allowNull: false,
},
content: {
type: Sequelize.STRING(20000),
allowNull: false,
},
img: {
type: Sequelize.STRING(250),
allowNull: true,
},
}, {
sequelize,
timestamps: true,
underscored: false,
modelName: 'Post',
tableName: 'posts',
paranoid: false,
charset: 'utf8mb4',
collate: 'utf8mb4_general_ci',
});
}
static associate(db) {
db.Post.belongsTo(db.User);
db.Post.belongsToMany(db.Hashtag, { through: 'PostHashtag' });
}
};
有什么方法可以保存表中的长数据吗?
我试着在这里增加数字.(后模块)
content: {
type: Sequelize.**STRING(20000),**
allowNull: false,
},
还是老样子。
1条答案
按热度按时间gk7wooem1#
使用Sequelize.TEXT('long')
长文本
最大长度为
4,294,967,295
或4GB (232 - 1)
(以字节为单位)的TEXT
列。如果值包含多字节字符,则有效最大长度较小。LONGTEXT列的有效最大长度还取决于客户机/服务器协议中配置的最大数据包大小和可用内存。每个LONGTEXT值都使用四位-字节长度前缀,指示值中的字节数。参考:https://mariadb.com/kb/en/longtext/