我用第一种方法删除 password字段代码直接编译不过去了

我用第一种方法删除 password字段代码直接编译不过去了

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
张轩 2022-08-08 15:52:46

同学你好

两个问题的解决方案:

第一个:AutoIncrementFactory 的启动问题。新版的 egg.js   启动自带了 es6 的默认引入方式。

所以import 改一下即可:

从 import * as AutoIncrementFactory from 'mongoose-sequence';
改为
import AutoIncrementFactory from 'mongoose-sequence';
即可

第二个问题:类型错误。

是因为不能 delete 一个必选属性导致的,这里最简单的方式就是做一个临时的类型断言,解决这个问题:

const userObj = user.toJSON() as any;
delete userObj.password;

亲测有效

张轩 2022-08-07 16:42:32

同学你好

这里是 ts 的提示错误是 password 这里定义的属性应该是必选的,在这里删除一个必选的属性就会报错。

可以看一下你 password 的属性到底是什么类型的? 是必选还是可选的?

可以将源代码(git)提供给我,我在本地帮你看看怎样解决最好。

  • 提问者 keep7677850 #1

    我的地址 https://gitee.com/keepzc/keep-lego-backend,   还有就是引用了mongoose-sequence包的,AutoIncrementFactory , 启动项目直接报错了。 都帮我看看吧

    2022-08-07 19:07:58
  • 提问者 keep7677850 #2

    我git地址多打了个逗号,老师访问去了逗号就可以

    2022-08-07 19:12:17
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师