teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

dbの参照元を追加

2021/07/06 15:52

投稿

velonica74
velonica74

スコア11

title CHANGED
File without changes
body CHANGED
@@ -113,6 +113,49 @@
113
113
  at ~/prj/routes/buy.js:145:25
114
114
  at processTicksAndRejections (internal/process/task_queues.js:95:5)
115
115
  ```
116
- というエラーが出てしまいました。
116
+ というエラーが出てしまいました。またdbの定義については
117
+ ```js
118
+ // ~/prj/models/index.js
119
+
120
+ 'use strict';
121
+
122
+ const fs = require('fs');
123
+ const path = require('path');
124
+ const Sequelize = require('sequelize');
125
+ const basename = path.basename(__filename);
126
+ const env = process.env.NODE_ENV || 'development';
127
+ const config = require(__dirname + '/../config/config.json')[env];
128
+ const db = {};
129
+
130
+ let sequelize;
131
+ if (config.use_env_variable) {
132
+ sequelize = new Sequelize(process.env[config.use_env_variable], config);
133
+ } else {
134
+ sequelize = new Sequelize(config.database, config.username, config.password, config);
135
+ }
136
+
137
+ fs
138
+ .readdirSync(__dirname)
139
+ .filter(file => {
140
+ return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
141
+ })
142
+ .forEach(file => {
143
+ const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
144
+ db[model.name] = model;
145
+ });
146
+
147
+ Object.keys(db).forEach(modelName => {
148
+ if (db[modelName].associate) {
149
+ db[modelName].associate(db);
150
+ }
151
+ });
152
+
153
+ db.sequelize = sequelize;
154
+ db.Sequelize = Sequelize;
155
+
156
+ module.exports = db;
157
+
158
+ ```
159
+ こちらにて行なっています。
117
160
  db.Userやdb.Itemへのアクセスはできていましたが、中間テーブルについては調べても文献が少なく、解決の糸口が見えないため、アドバイスをいただけますと幸いです。
118
161
  何卒よろしくお願いします。