Javascript Model.findById不是一个函数
在main.js中,我调用Javascript Model.findById不是一个函数,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,在main.js中,我调用driver.claimdopoff(myOrderId),如下所示 const utils = require('../utils'); ... async claimDropoff(order) { order = await utils.ensureOrder(order); order.status = 1; order.dropoffDriver = this._id; await order.s
driver.claimdopoff(myOrderId)
,如下所示
const utils = require('../utils');
...
async claimDropoff(order) {
order = await utils.ensureOrder(order);
order.status = 1;
order.dropoffDriver = this._id;
await order.save()
return this
}
utils.js
类型/order.js
我的目录树如下所示:
main.js
utils.js
|
└───types
driver.js
order.js
但是我得到了错误未处理的PromisejectionWarning:TypeError:Order.findById不是一个函数,这是不应该发生的!我需要一个mongoose.Model,它应该有一个函数findById(id:any,callback:function)
是什么导致了这种奇怪的行为?Intellisense说这是完全合法的。您应该解构Order对象。
像这样使用它
const { Order }= require('./types/order');
Driver
是否导入了Order
和Order
导入了Driver
?@AsafAviv您的评论启发了修复!非常感谢:)我并没有这么做,但你的评论让我思考——无限循环!原来我是在utils
中导入Order
,在Order
中导入utils
。没问题,很高兴你把它整理好了。
main.js
utils.js
|
└───types
driver.js
order.js
const { Order }= require('./types/order');