如您在图片中看到的,它什么也没保存。 POST请求正在运行,但是我发送给后端的数据仅保存具有ID的新对象,而不保存我提供的数据,我的意思是对象数组。
我没有任何错误,或者状态还可以。我正在与邮递员测试。 这是邮递员的发帖请求
我将添加一些代码。
这是模型。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define MAX_WORD_LEN 1024
/**
* Note: this could also handle if spaces are the end
*
*/
int main() {
char* text = "some text ";
char* text2 = malloc(sizeof(char) * MAX_WORD_LEN); // note: sizeof(char), cause string
char *itr = text; // its better to put a seperate iterator to iterate over strings in c
char *itr2 = text2; // declare a iterator to iterate over text2
while (*itr != '\0') {
*itr2 = *itr;
// increase both iterator
itr++;
itr2++;
// there's no need to provide a if here, just run while loop
// also notice, previously by increasing "text" pointer you may reach the end
// but, you're not checking it
// but, you should check it
while(*itr != '\0' && isspace(*itr)){
itr++; // while iterating
}
// there's no need to increase "itr" here
}
// finally at a null char to the end of text2
*itr2 = '\0';
printf("text: %s\n\n", text);
printf("text2: %s\n", text2);
// at last free allocated memory
free(text2);
return 0;
}
这是控制器。
const mongoose = require("mongoose");
const dataModelScheme = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
personalData: [{
_id: mongoose.Schema.Types.ObjectId,
title: String,
firstName: String,
lastName: String,
email: String,
birthday: String,
telephone: Number,
driveLicense: String,
status: Number,
employmentType: String,
job: String,
}],
career: [{
_id: mongoose.Schema.Types.ObjectId,
name: String,
startDate: Number,
endDate: Number,
description: String,
}],
education: [{
_id: mongoose.Schema.Types.ObjectId,
name: String,
description: String
}],
skills: [{
_id: mongoose.Schema.Types.ObjectId,
name: String,
description: String
}],
user: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
});
module.exports = mongoose.model('ModelSchema', dataModelScheme);
答案 0 :(得分:1)
您正在发送对象数组,但是尝试使用点符号将它们读取为对象。您需要通过在方括号中提供索引来将它们读取为数组。我不会介绍您的所有资产,但这是您需要做的要点。
const modelData = new ModelData({
_id: new mongoose.Types.ObjectId(),
user: user_id,
personalData: [{
_id: new mongoose.Types.ObjectId(),
title: req.body.personalData[0].title,
firstName: req.body.personalData[0].firstName,
lastName: req.body.personalData[0].lastName,
// DO similar for the rest of your properties
}],
`
答案 1 :(得分:1)
这是因为在创建模型时,您仅传递了一个用于PersonalData,技能和教育的元素。试试这样的东西
const modelData = new ModelData({
_id: new mongoose.Types.ObjectId(),
user: user_id,
personalData: req.body.personalData.map(personalData => {
return {
_id: new mongoose.Types.ObjectId(),
title: personalData.title,
firstName: personalData.firstName,
lastName: personalData.lastName,
email: personalData.email,
birthday: personalData.birthday,
telephone: personalData.telephone,
driveLicense: personalData.driveLicense,
status: personalData.status,
employmentType: personalData.employmentType,
job: personalData.job
};
}),
skills: req.body.skills.map(skill => {
return {
_id: new mongoose.Types.ObjectId(),
name: skill.name,
description: skill.description
};
},
education: req.body.education.map(education => {
return {
_id: new mongoose.Types.ObjectId(),
name: education.name,
description: education.description
};
}
});