为了账号安全,请及时绑定邮箱和手机立即绑定

sequelize的文档为什么建议用sequelize.import()的方式将model来分成模块

sequelize的文档为什么建议用sequelize.import()的方式将model来分成模块

慕无忌1623718 2019-02-14 17:19:09
koa或express中用sequelize一般都要把一个个model放到单文件,官方文档给了一个奇怪的做法,它自己提供了个import的方法,然后让model单文件导出一个函数// in your server file - e.g. app.jsconst Project = sequelize.import(__dirname + "/path/to/models/project")// The model definition is done in /path/to/models/project.js// As you might notice, the DataTypes are the very same as explained abovemodule.exports = (sequelize, DataTypes) => {  return sequelize.define("project", {    name: DataTypes.STRING,    description: DataTypes.TEXT  })}https://github.com/sequelize/...这个官方样例更详细但是我觉得我这样写,模块化会更舒服一点// sequelize.jsimport Sequelize from 'sequelize'const sequelize = new Sequelize({    ...})export default sequelize// model/modelA.jsimport Sequelize from 'sequelize'import sequelize from './sequelize'export default sequelize.define("project", {    name: Sequelize.STRING,    description: Sequelize.TEXT})// in routeimport modelA from 'path/to/model/modelA'// or by using model/index.jsimport { modelA } from 'path/to/model'不知道我的想法会有什么问题
查看完整描述

1 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

解决nodejs require module时循环引用会导致undefined的问题

这个一般在定义关联的时候会用。

目前我的做法是把所有model的关联放到一个js去做


import { Authorize, AuthorizeAttributes, AuthorizeInstance } from './authorize';

import { Comment, CommentAttributes, CommentInstance } from './comment';

import { Hit, HitAttributes, HitInstance } from './hit';

import { Moneylog, MoneylogAction, MoneylogAttributes, MoneylogInstance } from './moneylog';

import { Order, OrderAttributes, OrderInstance } from './order';

import { Post, PostAttributes, PostContentType, PostInstance } from './post';

import { Poundage, PoundageAttributes, PoundageInstance } from './poundage';

import { User, UserAttributes, UserInstance } from './user';

import { Withdrawal, WithdrawalAttributes, WithdrawalInstance } from './withdrawal';


Comment.belongsTo(Post, { foreignKey: 'post_id', as: 'post' });

Comment.belongsTo(User, { foreignKey: 'user_id', as: 'user' });


Order.belongsTo(User, { foreignKey: 'user_id', as: 'user' });

Order.belongsTo(Post, { foreignKey: 'post_id', as: 'post' });


Post.belongsTo(User, { foreignKey: 'user_id', as: 'user' });

Post.hasMany(Comment, { foreignKey: 'post_id', as: 'commentList' });


User.hasMany(Post, { foreignKey: 'user_id', as: 'posts' });

User.hasMany(Order, { foreignKey: 'user_id', as: 'orders' });

User.hasMany(Comment, { foreignKey: 'user_id', as: 'comment' });


查看完整回答
反对 回复 2019-02-27
  • 1 回答
  • 0 关注
  • 2435 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号