Как устранить ошибку typeerror 'caller' и 'arguments' свойства типа error не могут быть доступны в строгом режиме - PullRequest
0 голосов
/ 21 января 2020

Я создал в своем 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;

Может быть, я написал что-то не так в моем контроллере, но не могу понять, что на самом деле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...