我目前正在使用AngularJS,Loopback和MySQL构建一个webapp。它被罚了一段时间,最近我从前端回送的大部分请求开始因内部服务器错误而失败。
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作为我的模块,我不明白可能出现的问题。
答案 0 :(得分:5)
我在下面解决了它(我正在使用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."
}
答案 1 :(得分:2)
经过一些研究后,我找到了答案。 npm的一个问题是安装了错误版本的环回,因为我没有修复我的依赖版本号,并且在我需要"loopback": "^3.0.0"
时有"loopback": "3.0.0",
。
^
意味着npm可能会采用更新的次要版本,在我的情况下发生并完全破坏了我与数据库的连接。
如果与其他任何人一起发生过,请不要忘记之后删除并重新安装节点模块。