Loopbackjs strong循环:未调用创建之前的循环
我有一个名为question的模型,在这个模型上我定义了beforeCreate和beforeUpdate方法来设置createdAt和updatedAt时间戳。但是当我使用api资源管理器创建新问题时,它似乎从未被调用 以下是我的问题。json:Loopbackjs strong循环:未调用创建之前的循环,loopbackjs,strongloop,Loopbackjs,Strongloop,我有一个名为question的模型,在这个模型上我定义了beforeCreate和beforeUpdate方法来设置createdAt和updatedAt时间戳。但是当我使用api资源管理器创建新问题时,它似乎从未被调用 以下是我的问题。json: { "name": "question", "plural": "questions", "base": "PersistedModel", "idInjection": true, "properties": { "ti
{
"name": "question",
"plural": "questions",
"base": "PersistedModel",
"idInjection": true,
"properties": {
"title": {
"type": "string",
"required": true
},
"body": {
"type": "string",
"required": true
},
"views": {
"type": "number"
},
"createdAt": {
"type": "date",
"required": true
},
"updatedAt": {
"type": "date",
"required": true
},
"id": {
"type": "number"
}
},
"validations": [],
"relations": {
"tags": {
"type": "hasMany",
"model": "tag",
"foreignKey": "question_id"
}
},
"acls": [],
"methods": []
}
和question.js
module.exports = function(question) {
question.beforeCreate = function (next, modelInstance) {
modelInstance.createdAt = Date.now();
modelInstance.updatedAt = Date.now();
next();
};
question.beforeUpdate = function (next, modelInstance) {
modelInstance.updatedAt = Date.now();
next();
};
};
我在创建时遇到的错误是:
{
"error": {
"name": "ValidationError",
"status": 422,
"message": "The `question` instance is not valid. Details: `createdAt` can't be blank (value: undefined); `updatedAt` can't be blank (value: undefined).",
"statusCode": 422,
"details": {
"context": "question",
"codes": {
"createdAt": [
"presence"
],
"updatedAt": [
"presence"
]
},
"messages": {
"createdAt": [
"can't be blank"
],
"updatedAt": [
"can't be blank"
]
}
},
"stack": "ValidationError: The `question` instance is not valid. Details: `createdAt` can't be blank (value: undefined); `updatedAt` can't be blank (value: undefined).\n at /Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/dao.js:252:12\n at ModelConstructor.<anonymous> (/Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/validations.js:460:11)\n at ModelConstructor.next (/Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/hooks.js:75:12)\n at ModelConstructor.<anonymous> (/Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/validations.js:457:23)\n at ModelConstructor.trigger (/Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/hooks.js:65:12)\n at ModelConstructor.Validatable.isValid (/Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/validations.js:433:8)\n at /Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/dao.js:248:9\n at doNotify (/Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/model.js:641:49)\n at doNotify (/Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/model.js:641:49)\n at doNotify (/Users/dev/Desktop/workspace/stackclone/node_modules/loopback-datasource-juggler/lib/model.js:641:49)"
}
}
提前谢谢你能在
question.js
module.exports = function(Question) {
Question.beforeRemote('create', function(context, user, next) {
var req = context.req;
req.body.createdAt = new Date(2014,2,2);
req.body.updatedAt = Date.now();
next();
});
};
你能在
question.js
module.exports = function(Question) {
Question.beforeRemote('create', function(context, user, next) {
var req = context.req;
req.body.createdAt = new Date(2014,2,2);
req.body.updatedAt = Date.now();
next();
});
};
模型挂钩已被弃用,取而代之的是操作挂钩: 在您的情况下,到操作挂钩的移植非常少:
module.exports = function(Question) {
Question.observe('before save', function(context, next) {
context.instance.createdAt = new Date(2014,2,2);
context.instance.updatedAt = Date.now();
next();
});
};
模型挂钩已被弃用,取而代之的是操作挂钩: 在您的情况下,到操作挂钩的移植非常少:
module.exports = function(Question) {
Question.observe('before save', function(context, next) {
context.instance.createdAt = new Date(2014,2,2);
context.instance.updatedAt = Date.now();
next();
});
};
这种方式已被弃用。改用操作钩子:这种方法已被弃用。改用操作挂钩: