error در ست کردن مقادیر create

پرسیده شده
فعالیت 662 روز پیش
دیده شده 577 بار
1

سلام:
استاد بعد از تعریف روابط اینترفیس و اسکیما برای users,products،وقتی میخوام در create مقادیر رو ست کنم،خطا میده:
این خطا از همان خطایی است که وقتی شما در ویدیوی Users & Routes میخواستید router  رو داینامیک کنید(بعد از register کردن روتر) برایتان گرفت.که کانفلیکت بود و مجبور شدید Router رو با RouterEngine  جایگزین کنید.اینجا نمیدونم که این کانفلیکت است،و اگر هست چی با چی کانفلیکت دارد و اگر نیست مشکل کجاست.استاد خطایی رو که nodemon میگیره رو هم ضمیمه کردم.با سپاس.
---------------------------------------------------------------------
خطایnodemon:
 

11         Users.create({})
                        ~~

  node_modules/@types/mongoose/index.d.ts:3301:5
    3301     create<TCreate = T>(...docs: CreateQuery<TCreate>[]): Promise<T>;
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    The last overload is declared here.

فایل پیوست

سینا-همتی
سینا-همتی

16 شهریور 99

1
حذف شده

من بررسی کردم و انگار این مدل مشکلی داره که هنوز نتونستم پیدا کنم. اما از روش زیر هم می تونی داده ها رو ایجاد کنی.

    public async create(req: Request, res: Response) {
        const newUser = new UserModel({
            first_name:req.body.first_name
        })
        await newUser.save()
    };

 

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

17 شهریور 99

حذف شده
سپاس.
سینا-همتی

17 شهریور 99

0
حذف شده

سلام، لطفا کدهای مدل رو هم قرار بده از بلاک کد همین ویرایشگر برای کپی کردن کدها استفاده کن 

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

16 شهریور 99

0
حذف شده
schema:
import { model, Schema } from 'mongoose';
import IUser from './IUsers';


const userSchima: Schema = new Schema({

    first_name: { type: String, required: true },
    last_name: { type: String, required: true },
    email: { type: String, required: true, unique: true },
    mobile: { type: String, required: true, unique: true },
    total_orders: { type: Number, required: true, default: 0 },
    wallet: { type: Number, required: true, default: 0 },
    created_at: { type: Date, default: Date.now }

});
export default model<IUser>('User', userSchima);

---------------------------------------------------------
interface:

import { Document } from 'mongoose';



export default interface IUser extends Document {
    first_name: string;
    last_name: string;
    email: string;
    mobile: string;
    total_orders: number;
    wallet: number;
    created_at: Date

}

 

فایل پیوست

سینا-همتی

توسط

سینا-همتی

16 شهریور 99

0
حذف شده

شما تمامی پارامتر های مورد نظر برای ایجاد کاربر رو در همون create بنویسید و بعد ببینید چه خطایی میده. من الان مشکلی در کدهای شما نمی بینم.

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

17 شهریور 99

0
حذف شده

استاد همون خطارو میده.روی پراپرتی کلیک میکنم :

any

Cannot find name 'email'.
روی مقادیر هم که بیرون از {}  ست کردم کلیک میکنم باز همون خطای پیشین رو میده.
Argument of type '"sina"' is not assignable to parameter of type 'Pick<{ _id: any; first_name: string; last_name: string; email: string; mobile: string; total_orders: string | number; wallet: string | number; created_at: string | number | Date; } & { ...; }, "first_name" | ... 5 more ... | "created_at"> & { ...; }'.

فایل پیوست

سینا-همتی

توسط

سینا-همتی

17 شهریور 99

0
حذف شده

لطفا هر چیزی میخواید به صورت کد قرار بدید داخل بلاک کد باشه. الان کدهای که تکمیل کردید به همراه تصویر خطا رو قرار بدید.

فایل پیوست

کیوان علی محمدی

توسط

کیوان علی محمدی

17 شهریور 99

0
حذف شده

استاد کل سورس کدم رو با اجازه فرستادم براتون.بجز node_module.من کل پروژه رو دو سه بار دیلیت کردم و از نو نوشتم.باز اینجا میرسه همین خطارو میگیره.

import { Request, Response } from 'express';
import User from './model/User';

class UsersControler {

    public index(req: Request, res: Response) {
        res.send({ allUsers: [] })
    };

    public async create(req: Request, res: Response) {
        User.create(
            first_name: 'sina',
            last_name: 'kh',
            email:'[email protected]' ,
            mobile:'0932555533' ,
         

}
export default UsersControler;

 

فایل پیوست
New folder.rar
48.18 KB

سینا-همتی

توسط

سینا-همتی

17 شهریور 99

0
حذف شده

اینم تصویر خطا:

Argument of type '"sina"' is not assignable to parameter of type 'Pick<{ _id: any; first_name: string; last_name: string; email: string; mobile: string; total_orders: string | number; wallet: string | number; created_at: string | number | Date; } & { ...; }, "first_name" | ... 5 more ... | "created_at"> & { ...; }'.
  Type '"sina"' is not assignable to type 'Pick<{ _id: any; first_name: string; last_name: string; email: string; mobile: string; total_orders: string | number; wallet: string | number; created_at: string | number | Date; } & { ...; }, "first_name" | ... 5 more ... | "created_at">'.ts(2345)

 

فایل پیوست

سینا-همتی

توسط

سینا-همتی

17 شهریور 99

حذف شده
بررسی می کنم . همین جا نتیجه رو میگم
کیوان علی محمدی

17 شهریور 99

0
حذف شده

استاد تو mongoo من یه دیتابیس به نام shop و داکیومنت users ایجاد کردم.اما در نهایت نتونستم داده ادد کنم به داکیومنت.
 

export default class UsersControler {

    public index(req: Request, res: Response) {
        res.send({ allUsers: [] })
    };
    public async create(req: Request, res: Response) {
        const newUser = new UserModel({
            first_name: req.body.first_name,
            last_name: req.body.last_name,
            email: req.body.email,
            mobile: req.body.mobile


        })
        await newUser.save();
    }
}
---------------------------
خطای nodemon:


application is running....
mongoo connection is open...
(node:7924) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'first_name'
of undefined
    at create (C:\xampp\htdocs\SHOP_BACKEND\src\component\users\usersControler.ts:12:34)
    at Layer.handle [as handle_request] (C:\xampp\htdocs\SHOP_BACKEND\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\xampp\htdocs\SHOP_BACKEND\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\xampp\htdocs\SHOP_BACKEND\node_modules\express\lib\router\route.js:112:3)

 

فایل پیوست

سینا-همتی

توسط

سینا-همتی

17 شهریور 99

0
حذف شده

استاد لطفا این سوال رو ج بدین

فایل پیوست

سینا-همتی

توسط

سینا-همتی

18 شهریور 99

0
حذف شده

استاد این اصلا create نداره.سه روز وقتمو گرفت.این ست کردن مقادیر تو تابع کریت داره انجام میشه دیگه.دوباره تو مقادیر دادنی create لازم نیست.

من از این آدرس پیدا کردم:

https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mongoose


اگه نگاه کنین اصلا کریت نداره.یه نیومدل کرده و مقدار داده.



var UserModel: Model<IUser> = model<IUser>('User', UserSchema);

var user = new UserModel({name: 'Jane'});
user.username;     // IUser properties are available
user.save();       // mongoose Document methods are available

UserModel.findOne({}, (err: any, user: IUser) => {
  user.username;   // IUser properties are available
  user.save();     // mongoose Document methods are available
});

 

فایل پیوست

سینا-همتی

توسط

سینا-همتی

18 شهریور 99

حذف شده
من همین پاسخ رو برای شما ارسال کرده بودم اما انگار ثبت نشده
کیوان علی محمدی

18 شهریور 99

1

مورد تایید استاد

حذف شده

export default class UsersControler {

    public index(req: Request, res: Response) {
        res.send({ allUsers: [] })
    };
    public async create(req: Request, res: Response) {

        const newUser = await new UserModel(
            {
                first_name: 'sina',
                last_name: 'kj',
                email: '[email protected]',
                mobile: '6566'
            }
        );
        await newUser.save();
        res.send(newUser);


    }


}

 

فایل پیوست

سینا-همتی

توسط

سینا-همتی

18 شهریور 99