mysql - Sails.JS:自动增量实施失败
问题描述
我正在开发一个 Sails.JS 应用程序,该应用程序使用水线 ORM 对 MySQL 数据库执行 CRUD 操作。我的模型有一个属性id
设置为使用该函数自动递增beforeCreate
,但每次我尝试调用该create
函数时,都会发生此错误:
{“错误”:{“名称”:“UsageError”,“代码”:“E_INVALID_NEW_RECORD”,“详细信息”:“所需属性的缺失值。需要
id
一个数字,但得到的是:未定义”}}
这是我的模型:
module.exports = {
primaryKey: 'id',
attributes: {
id: {
type: "number",
required: true,
unique: true,
autoIncrement: true
},
name: {
type: "string",
required: true
},
beforeCreate : function(item, next) {
Counter.native(function(err, collection) {
if (err) console.log(err);
collection.findAndModify(
{ _id: "id" },
null,
{ $inc: { seq: 1 } },
{ new:true, upsert:true },
function(err, object){
if (err) console.log(err);
item.id = object.seq;
next();
}
);
});
}
};
这是我的模型控制器:
module.exports = {
create :function(req,res,next) {
let params = {name:req.param('name') };
model.create(params , function(err , createdData) {
if(err){
return res.badRequest({
error: err
});
}
else
{
return res.json({ added});
}
});
},
解决方案
推荐阅读
- spring-boot - 使用 Heroku Maven 插件部署 Spring Boot 应用程序
- angular - 使用路由器发送状态未定义
- yaml - CircleCi YAML 配置给出了意外的字符串错误
- c++ - 用cstring删除c ++中的字符
- python - Python快速将多个字符插入字符串的所有可能位置
- sql - SQL Oracle - 如何找到同一张表的最终值?
- javascript - 登录并抓取使用 CORS(AWS) 和 JS 的网站以使用 Google Apps 脚本填充自身
- gem5 - gem5中的伪指令是什么?
- sql-server - SQL Server 存储过程报告成功执行,但其中的查询不执行
- r - ggplot + imager = 拉伸图像和不正确的热图和 geom_point