nodejs 萌新请教大佬,我的 express 链接的 mongodb

2019-09-19 17:17:47 +08:00
 niknik

我每个 model 都写了一个 js 文件类似于


var mongoose = require("mongoose"); const UserSchema = new mongoose.Schema({ username: { type: String, unique: true }, password: { type: String} }) const User = mongoose.model('UsersClass', UserSchema) module.exports = User 然后再到 app.js 引入 User = require('./modules/user')


但是如果我写了 20 个 model,那我就要在 app.js 引入 20 次,有什么方法能够解决 谢谢大佬们指教

4770 次点击
所在节点    Node.js
11 条回复
X41822N
2019-09-19 17:23:55 +08:00
写代码遍历你的 model 文件呗
ZehaiZhang
2019-09-19 17:25:29 +08:00
所以 egg 就很好了 this.ctx.model.User 就可以访问了
wednesdayco
2019-09-19 17:26:24 +08:00
所以为什么你每个 model 要单独写一个文件。。。。
arrow8899
2019-09-19 17:30:23 +08:00
需要的时候再引用啊,其他语言都是一样的啊
niknik
2019-09-19 17:31:11 +08:00
@X41822N 想过这个办法了,但是代码感觉很怪怪
niknik
2019-09-19 17:32:31 +08:00
@wednesdayco 写在一起确实解决了这个问题,但是想把 model 分开,代码更漂亮,嘻嘻
niknik
2019-09-19 17:33:41 +08:00
@arrow8899 这个,初期路由不分文件就需要统统引入,到了后期把路由分开写,也不能避免引入多个,有点难受
niknik
2019-09-19 17:34:00 +08:00
谢谢楼上大佬们
wednesdayco
2019-09-19 17:35:32 +08:00
@niknik 并不觉得你这么分开有多美观,难道不是应该把这几个地方抽象么
luob
2019-09-19 17:47:49 +08:00
并没有取巧的办法,只有那些带自动依赖注入系统的框架才能做到自动把定义的 model,controller 等东西按需注入到 app 中。如果不想使用 eggjs,nestj 等真正意义上的框架,只能自己手动一个一个 import
LZYPPP
2019-09-19 18:36:00 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/602245

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX