Sequelize在插入一个大写字母时返回小写字母
Sequelize returns lowercase letter when inserting a one letter uppercase letter?
为什么当我插入一个大写字母时,序列化插入并返回一个小写字母?
示例:我插入"N",它保存"N"而不是"N"。
我插入了如下内容:
console.log(toBeInserted) // let's say toBeInserted = "N"
db.dataset.findOrCreate({
where:{
name: toBeInserted
}
})
.spread(function(inserted, created) {
console.log(inserted); //here I get back inserted = "n"
})
查看SQL DB,我可以看到"n"
被存储,而不是"N"
。
但是一旦输入值包含至少两个字母,sequelize将正确保存它:
console.log(toBeInserted) // toBeInserted = "Hi"
db.dataset.findOrCreate({
where:{
name: toBeInserted
}
})
.spread(function(inserted, created) {
console.log(inserted); //here I get back inserted = "Hi"
})
DB中"Hi"
保存正确
谁能给我解释一下为什么会发生这种情况,我该如何预防?我想要sequelize保存值,就像我插入它一样,也就是说,如果我想插入"N"(大写字母"N"),它应该保存"N"。
编辑:Sequelize能够保存只有一个小写字母和大写字母的输入。然而,似乎findOrCreate()方法不能识别大小写字母,一旦你创建它。
示例:我有一个空数据库,我创建了以下输入:
console.log(toBeInserted) // toBeInserted = "A"
db.dataset.findOrCreate({
where:{
name: toBeInserted
}
})
.spread(function(inserted, created) {
console.log(inserted + " " + created); //here I get back inserted = "A true"
})
我检查了我的DB,确实在那里保存了正确的大小写。
之后我将创建以下数据:
console.log(toBeInserted) // toBeInserted = "a"
db.dataset.findOrCreate({
where:{
name: toBeInserted
}
})
.spread(function(inserted, created) {
console.log(inserted + " " + created); //here I get back inserted = "a false"
})
我再次检查我的数据库,数据没有改变。
执行此操作的可能不是sequelize。我测试过了,没有重现你描述的行为。你确定在tobeinserts变量中发送的是"N"而不是"N"吗?或者你的数据库中有一个触发器或其他东西导致了这个
相关文章:
- 正好包含2个大写字母和3个数字的正则表达式
- 创建时选择Nav大写字母
- 带有大写字母的棱角分明的光滑属性
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- 有没有一个函数会忽略javascript中的大写字母
- 如何使用至少一个数字、一个大写字母和6-20个字符验证密码
- 查找大写字母的简单正则表达式是返回小写字母
- 忽略任何非小写字符(如数字、大写字母和符号)并获取k的值
- 正则表达式和 javascript:匹配数字后跟空格和大写字母之间的所有内容
- 将 CSS 类添加到以大写字母开头的行
- 提取大写字母 ( 英语 ) |首选方法
- 如何在提示中接受大写字母?JS
- Javascript正则表达式,需要一个大写字母、一个小写字母和一个数字,并允许特殊
- Javascript:在字符串中,替换大写字母及其后面的所有字母
- 标题中大写字母之间的角度UI网格空间
- 编写一个包含一个大写字母和六个数字的javascript表达式
- JavaScript-删除最后一个大写字母后的所有字符
- 返回标题大小写,尊重单词中间的大写字母
- Sequelize在插入一个大写字母时返回小写字母
- 如何返回第一个字母为大写字母的数组的所有元素