Mysql ER_BAD_FIELD_ERROR 在带环回的 findOne 上
Mysql ER_BAD_FIELD_ERROR on findOne with loopback
我目前正在使用 AngularJS、Loopback 和 MySQL 构建一个网络应用程序。它工作了一段时间,最近我从前端发出的大部分环回请求开始因内部服务器错误而失败。
Error: ER_BAD_FIELD_ERROR: Unknown column 'scopes' in 'field list'
我正在使用 Loopback Angular SDK 在前端发出请求。我真的不明白为什么它要搜索列范围,因为当我有它的 ID 时我调用它来搜索用户。
$scope.user = !$scope.isLoggedIn ? {} : Appuser.findOne({
filter: {
where: { id: Appuser.getCurrentId() }
}
}).$promise.then(function(res){
$scope.user = res;
});
我最近开始在此应用程序上使用 webpack,并且最近还重新安装了我的所有节点模块,我不知道它是否有影响,但我怀疑是这样,因为当我恢复到提交时时间一切正常,问题仍然存在。但是,由于我正在为我的模块使用 npm 和 package.json,所以我不明白可能出了什么问题。
经过更多研究,我找到了答案。这是 npm 的一个问题,它安装了错误版本的 loopback,因为我没有修复我的依赖项版本号,并且在我需要 "loopback": "3.0.0",
时有 "loopback": "^3.0.0"
。
^
意味着 npm 可能会采用更新的次要版本,在我的情况下发生了这种情况并完全中断了我与数据库的连接。
如果其他人发生过这种情况,请不要忘记删除并重新安装您的节点模块。
我在下面解决了(我使用的是 mysql 连接器)
ALTER TABLE AccessToken ADD COLUMN `scopes` TEXT NULL;
我在 ./node_modules/loopback/common/models/access-token.json
找到了新字段。
"scopes": {
"type": ["string"],
"description": "Array of scopes granted to this access token."
}
我目前正在使用 AngularJS、Loopback 和 MySQL 构建一个网络应用程序。它工作了一段时间,最近我从前端发出的大部分环回请求开始因内部服务器错误而失败。
Error: ER_BAD_FIELD_ERROR: Unknown column 'scopes' in 'field list'
我正在使用 Loopback Angular SDK 在前端发出请求。我真的不明白为什么它要搜索列范围,因为当我有它的 ID 时我调用它来搜索用户。
$scope.user = !$scope.isLoggedIn ? {} : Appuser.findOne({
filter: {
where: { id: Appuser.getCurrentId() }
}
}).$promise.then(function(res){
$scope.user = res;
});
我最近开始在此应用程序上使用 webpack,并且最近还重新安装了我的所有节点模块,我不知道它是否有影响,但我怀疑是这样,因为当我恢复到提交时时间一切正常,问题仍然存在。但是,由于我正在为我的模块使用 npm 和 package.json,所以我不明白可能出了什么问题。
经过更多研究,我找到了答案。这是 npm 的一个问题,它安装了错误版本的 loopback,因为我没有修复我的依赖项版本号,并且在我需要 "loopback": "3.0.0",
时有 "loopback": "^3.0.0"
。
^
意味着 npm 可能会采用更新的次要版本,在我的情况下发生了这种情况并完全中断了我与数据库的连接。
如果其他人发生过这种情况,请不要忘记删除并重新安装您的节点模块。
我在下面解决了(我使用的是 mysql 连接器)
ALTER TABLE AccessToken ADD COLUMN `scopes` TEXT NULL;
我在 ./node_modules/loopback/common/models/access-token.json
找到了新字段。
"scopes": {
"type": ["string"],
"description": "Array of scopes granted to this access token."
}