我目前正在使用AngularJS,Loopback和MySQL构建一个Web应用程序。它工作了一段时间,最近我从前端环回的大部分请求都因内部服务器错误而开始失败。
Error: ER_BAD_FIELD_ERROR: Unknown column 'scopes' in 'field list'
我正在使用环回 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,我不明白可能出了什么问题。
我在下面解决了它(我正在使用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."
}
经过更多的研究,我找到了答案。npm 安装错误版本的环回是 npm 的问题,因为我没有修复我的依赖项版本号,并且在需要"loopback": "3.0.0",
时"loopback": "^3.0.0"
。^
意味着 npm 可能会采用更新的次要版本,在我的情况下发生了并完全断开了我与数据库的连接。
如果其他人发生这种情况,请不要忘记删除并重新安装节点模块。