Я создал в своем Node API с Mon go контроллер для создания профиля, но он выдает мне эту ошибку:
typeerror 'caller' 'callee' and 'arguments' properties may not be accessed on strict mode function
Я не могу понять, почему я получаю эту ошибку.
Профиль также содержит встроенный опытный документ, как показано в модели. С помощью поста я смогу создать новый профиль, подобный этому примеру:
{
firstname: 'Jakub',
surname: 'Lemiszewski',
email: 'jakub@email.com',
bio: 'IT Geek',
title: 'Senior Dev',
area: 'Copenhagen',
username: 'Jakos',
experience: [
{
title: 'Senior Dev',
role: 'Dev',
company: 'ArosaDev',
startDate: '12-04-2018',
endDate: '',
description: '',
area: '',
image: ''
}
]
}
Скрипт, который я запускаю:
const Profile = require("../models/profileSchema");
const ProfileController = {
async getAll(req, res) {
await Profile.find({})
.then(profiles => res.json(profiles))
.catch(err => res.json(err));
},
async create(req, res) {
console.log(req.body);
const newProfile = new Profile(req.body);
await newProfile
.save()
.then(() =>
res.json({
message: "New Profile added",
data: req.body
})
)
.catch(err =>
res.status(400).json({
Msg: "Creation of a new student failed",
Error: err
})
);
}
};
module.exports = ProfileController;
Модель:
// Profile Schema model
// Embedded we have the Experience as []
const mongoose = require("mongoose");
const uuidv4 = require("uuid/v4");
const { isEmail } = require("validator");
const schema = {
firstname: {
type: String,
required: true
},
surname: {
type: String,
required: true
},
email: {
type: String,
trim: true,
lowercase: true,
unique: true,
required: true,
validate: {
validator: string => isEmail(string),
message: "Provided email is invalid"
}
},
bio: {
type: String,
required: true
},
title: {
type: String,
required: true
},
area: {
type: String,
required: true
},
imageUrl: {
type: String,
required: false,
default: "https://via.placeholder.com/150"
},
username: {
type: String,
required: true,
unique: true
},
experience: [
{
title: {
type: String,
required: true
},
role: {
type: String,
required: true
},
company: {
type: String,
required: true
},
startDate: {
type: Date,
required: true
},
endDate: {
type: Date
},
description: {
type: String
},
area: {
type: String
},
createdAt: {
type: Date,
default: Date.now,
required: false
},
updatedAt: {
type: Date,
default: Date.now,
required: false
},
image: {
type: String,
required: false,
default: "https://via.placeholder.com/150"
}
}
],
createdAt: {
type: Date,
default: Date.now,
required: false
},
updatedAt: {
type: Date,
default: Date.now,
required: false
}
};
const collectionName = "profile";
const profileSchema = mongoose.Schema(schema);
const Profile = mongoose.model(collectionName, profileSchema);
module.exports = Profile;
Может быть, я написал что-то не так в моем контроллере, но не могу понять, что на самом деле.