尝试通过URL请求uisng express动态创建mongoose模型的新实例。
在下面的示例中,如果const kind =' modelOne'通过网址,我得到了“无法读取的属性' modelOne'未定义的。一定是什么东西在这里,但我无法弄明白。
const { modelOne } = require('./modelOne');
const { modelTwo } = require('./modelTwo');
const { modelThree } = require('./modelThree');
function response(req, res) {
const kind = req.body.kind;
const object = new this[kind] ({
text: req.body
});
};
答案 0 :(得分:0)
首先,即使可行,我也不建议你这样做。最好不要相信您在请求中获得的数据。请尝试switch
或者像这样:
const { modelOne } = require('./modelOne');
const { modelTwo } = require('./modelTwo');
const { modelThree } = require('./modelThree');
const models = {modelOne, modelTwo, modelThree}
function response(req, res) {
const kind = req.body.kind;
const object = new models[kind] ({
text: req.body
});
};
this
引用的对象不包含所有导入的模块。我猜您正在使用Express this === global
。尝试将console.log(this)
添加到该函数中,您将看到它包含的所有字段。