Hai*_*iri 7 mongoose node.js typescript next.js
我试图将数据保存到 NextJS 页面上的猫鼬模型中。我在这一行收到打字稿错误:
await User.create(data)
Run Code Online (Sandbox Code Playgroud)
该表达式不可调用。联合类型的每个成员 '{ <Z = Document | _AllowStringsForIds<Pick<Pick<_LeanDocument<文档>, "_id" | “__v”| “id”>,“_id”| “__v”| “id">>>(文档:Z):承诺<...>;<Z = 文档<...> | _AllowStringsForIds<...>>(文档: Z[], 选项?: SaveOptions): Promise<...>; <Z = 文档<...> | _AllowStringsForIds<...>>(...docs: Z[]): Promis...' 有签名,但这些签名都不相互兼容。
该代码有效 - 我可以看到添加到数据库中的数据,但是
这是我从用户模型中导出的内容:
export default (mongoose.models.User || mongoose.model('User', UserSchema));
Run Code Online (Sandbox Code Playgroud)
rob*_*ash 11
虽然年纪有点大了,但还是留下我的感悟吧:
我遇到了同样的问题,发现我可以使其工作,而无需@ts-ignore显式给出mongoose.models.User与模式使用的相同类型。
export interface User {
username: string;
password: string;
}
const schema = new mongoose.Schema<User>(
{
username: {
type: String,
required: true,
},
password: {
type: String,
required: true,
},
}
);
export default (mongoose.models.User as mongoose.Model<User>) || mongoose.model('User', schema);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1598 次 |
| 最近记录: |