我尝试使用Node js应用程序和MongoDB进行用户注册,但遇到以下错误:const utente = new Utente({ ||||| TypeError: Utente is not a constructor
这是我的模型utente.js
const mongoose = require("mongoose");
const Utente = mongoose.model(
"Utente",
new mongoose.Schema({
email: String,
nome: String,
cognome: String,
password: String,
admin: String,
})
);
module.exports = Utente;
这是注册的控制器:
const { validationResult } = require("express-validator");
const { Utente } = require("../models/utente");
exports.registrazione = async (request, response, next) => {
const errors = validationResult(request);
if (!errors.isEmpty()) {
return response.status(422).json({
message: "Errore nell'Inserimento dei Dati",
error: errors.array(),
});
}
console.log("Email:", request.body.email);
const utente = new Utente({
email: request.body.email,
nome: request.body.nome,
cognome: request.body.cognome,
password: request.body.password,
cellulare: request.body.cellulare,
admin: request.body.admin
});
if (utente.findOne({email: request.body.email})) {
return response.status(400).send('Esiste già un account con questa email');
} else {
utente.save();
response.status(201).json({
messages: "Utente Registrato con Successo",
});
}
};
我尝试使用console.log()显示请求中的信息,信息显示正确,但出现此错误
2条答案
按热度按时间f87krz0w1#
当您指定:
您正在创建默认导出。因此,要导入模型,请执行以下操作:
请注意,
Utente
没有被{ }
包围。如果您确实希望以当前的方式导入
Utente
,则应按如下方式导出:您共享的控制器文件也为
registrazione
执行此操作。ux6nzvsh2#
正如@Montgomery Watts中所提到的,你可以这样导出和导入:
或:
cellulare
peroperty,或者您将其错误地放在此处:findOne
与model
一起使用,而不是与instance
一起使用: