比方说,我有两个名为dbPerson.js
和dbCar.js
的文件,它们都有自己的方法,例如:
dbPerson.js:
module.exports = {
getAll(callback){}
}
dbCar.js:
module.exports = {
getOne(callback){}
}
然后我有另一个名为db.js
的文件,它将导入这些文件:
const dbPerson=require('./dbPerson');
const dbCar=require('./dbCar');
最终我有了一个导入db.js
的主文件:
const db=require('./db');
我希望能够使用db.getAll()
和db.getOne()
来调用方法,但是这种方式我需要使用db.dbPerson.getAll()
和db.dbCar.getOne()
,有没有办法所以我不需要这样做?
更新:我发现下面的答案对我有帮助,但感谢所有尝试了解我的意思的人,下次我将尝试变得更加清晰!
答案 0 :(得分:1)
您还需要从let previewLayer = AVCaptureVideoPreviewLayer()
previewLayer.videoGravity = .resizeAspectFill
文件中导出这些功能:
db.js
您说:
我希望能够通过使用db.getAll()和db.getOne()来调用方法,但是这样,我将需要使用db.dbPerson.getAll()和db.dbCar.getOne(),有没有办法让我不需要这样做?
是否有问题的原因?
据我所知-您正在谈论两种不同的事物,汽车和人。
做//db.js
const dbPerson=require('./dbPerson');
const dbCar=require('./dbCar');
module.exports = {
getAll: dbPerson.getAll,
getOne: dbCar.getOne
}
对我来说很有意义,如果我做了db.dbCar.getOne()
,我不确定是要买一辆车还是一个人。
您可以重命名导出中的方法,例如:
db.getOne()
答案 1 :(得分:1)
有几种方法可以做到。您选择哪种方式应取决于您的要求。
首先让我们假设您要合并这两个对象(dbCar和dbPerson)。然后,您可以简单地使用对象传播语法来做到这一点。
// db.js
module.exports = {
...dbPerson,
...dbCar,
}
请注意,这样做,dbPerson的冲突属性将被dbCar的属性覆盖。而且通过命名,将这两个对象合并起来是没有意义的(您称其既是Person又是Car的东西?)。
另一种方法是使用代理对象转发呼叫。
// db.js
module.exports = {
getAll: dbPerson.getAll,
getOne: dbCar.getOne,
}