При обновлении связанного объекта я получаю два совершенно разных поведения из одного и того же кода. Например, вопрос принадлежит ученику. Я запускаю код ниже на двух отдельных машинах.Обновленные связанные объекты в Loopback ведут себя непоследовательно
Question.observe('after save', function (ctx, next) {
var question = ctx.instance
question.student(function (err, student) {
student.updateAttributes({points: student.points - question.points})
})
next();
})
На первой машине он отлично работает. Поэтому я подумал, что все готово. Но потом, когда я бегу точно такой же код на другой машине я получаю следующее сообщение об ошибке:
student.updateAttributes({points: student.points - question.points})
^
TypeError: Cannot read property 'points' of null
Я использую разъем памяти
"db": {
"name": "db",
"connector": "memory",
}
Единственное, что я думать о том, что у меня есть две разные версии loopback (одна с ошибкой, а другая без) ... но тогда package.json точно так же и для обоих !?
{
"name": "foo",
"version": "1.0.0",
"main": "server/server.js",
"scripts": {
"start": "node .",
"pretest": "jshint .",
"test": "mocha"
},
"dependencies": {
"compression": "^1.0.3",
"cors": "^2.5.2",
"loopback": "^2.22.0",
"loopback-boot": "^2.6.5",
"loopback-component-explorer": "^2.1.0",
"loopback-datasource-juggler": "^2.39.0",
"serve-favicon": "^2.0.1"
},
"devDependencies": {
"chakram": "^1.2.1",
"jshint": "^2.8.0",
"loopback-testing": "^1.2.0",
"mocha": "^2.3.4",
"mocha-bamboo-reporter": "^1.1.0"
},
"repository": {
"type": "",
"url": ""
},
"description": "foo"
}
Возможно, он мог запустить 'npm loopback -v', чтобы проверить версии loopback – Overdrivr
@Overdrivr' npm list' для всех зависимостей (я просто выбрал loopback в качестве примера, поскольку все они указаны одинаково. Спасибо за комментарий , добавил к ответу. – conradj