0
次のnode.jsモジュールは、初期化中にを2回、初期化中に2回ログを期待どおりに記録します。モデルパラメータは何とか上書きされ、ルートを使用しようとすると、常にModelA
が記録されます。ファンクションパラメータが上書きされます
module.exports = (model) => {
console.log(model.modelName);
return (db) => {
console.log(model.modelName);
router.post('/', (req, res, next) => {
console.log(model.modelName);
model.insertMany(req.body, (err, docs) => {
if(err) return next(err);
res.json(docs);
});
});
return router;
};
};
モジュールは、次のように使用されます。
const express = require('express');
const router = express.Router();
const plural = require('./plural.js');
module.exports = (db) => {
router.use('/a', plural(db.ModelA)(db));
router.use('/b', plural(db.ModelB)(db));
return router;
};
コードが正しく表示されません。関数の結果を 'router.use()'に渡す引数として使用しているので、ミドルウェアまたは 'Router'インスタンスを' db'パラメータで関数から返す必要があります。現在はデフォルトで 'undefined'を返しています。 – mscdex
私は少しコードを短絡し、 'return router;'が失われました。実際のコードはルータを返しています。 – raptor