в настоящее время работает над базовым c CRUD-приложением, использующим MongoDB в качестве моей базы данных, и продолжает получать ошибку MongoError: документ не прошел проверку и не могу понять, как это исправить.
похоже, что мои данные успешно отправляются из внешнего интерфейса на сервер express, поскольку я могу видеть пользовательские данные в теле запроса через некоторые операторы console.log в моем коде на стороне сервера.
вот что я сделал до сих пор, может быть кто-то заметит то, что я упустил:
интерфейс:
// property values assigned by setter in useState hooks
const userDetails = {
firstName: firstName, // john
lastName: lastName, // doe
email: email, // johndoe111@gmail.com
password: password, // password1
};
const createUserAccount = () => {
fetch("/api/users", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(userDetails),
})
.then(console.log("POST request sucessful"))
.catch((e) => console.log("error:", e.message));
};
полезная нагрузка запроса:
{"firstName":"john","lastName":"doe","email":"johndoe111@gmail.com","password":"password1"}
внутренняя часть:
const jsonBodyParser = bodyParser.json();
// some code to create an instance of mongo client
// some code to connnect to my cluster
const createDatabase = async (client) => {
const db = client.db(databaseName);
try {
await db.createCollection("users", {
autoIndexId: true,
validator: {
$jsonSchema: {
bsonType: "object",
required: ["firstName", "lastName", "email", "password"],
properties: {
firstName: {
bsonType: "string",
description: "must be a string and is required",
},
lastName: {
bsonType: "string",
description: "must be a string and is required",
},
email: {
bsonType: "string",
description: "must be a string and is required",
},
password: {
bsonType: "string",
description: "must be a string and is required",
},
},
},
},
});
console.log("[MongoDB]: users collection created.");
await db.createCollection("products", {});
console.log("[MongoDB]: products collection created.");
} catch (err) {
console.log(err);
}
console.log("[MongoDB]: database created");
};
app.post("/api/users", jsonBodyParser, (req, res) => {
console.log(req.body);
const userDetails = {
firstName: req.body.firstName,
lastName: req.body.lastName,
email: req.body.email,
password: req.body.password,
};
console.log("user details: ", userDetails);
try {
client.db(databaseName).collection("users").insertOne({ userDetails });
} catch (error) {
console.log("[MongoDB]: ", error);
}
});
тело запроса (после анализа):
{
firstName: 'john',
lastName: 'doe',
email: 'johndoe111@gmail.com',
password: 'password1'
}
большое спасибо!