私のコードを2回実行することに問題があります。標準のExpressアプリケーションで作業する私はMongooseスキーマを作成し、それぞれのファイルにエクスポートしてエクスポートします。 ノードはmongooseスキーマに対してコードを2回実行します
//user.js
const User = mongoose.model('User', userSchema)
module.exports = User
//In other files
const User = require('../models/User')
は今、私は自分のアプリケーションに2つの場所でこれを使用し、それが今のモデルを作成するコードのみであるよう
Cannot overwrite `User` model once compiled.
だから上記のコードは二回呼ばなっているというエラーを取得します。しかし、私はNodeが自分のコードで必要とされるので一度だけ実行すると思うでしょう。
本当に変わった部分は、Gitの以前のバージョンをチェックアウトしているのと同じエラーが出て、私と一緒に作業している人たちも同じエラーになります。だから私は解決策を探すべきアイデアはもうありません。
user.js 'console.log(module.parent)'の先頭に書き込んでみてください。このようにして、誰がそれを呼び出したかを見ることができます。 –
これは起こるべきではありません。既に 'require()'されたファイルは再び実行されません。 – robertklep
@robertklepだから私は今、とても深く混乱しているのです。 –