مشکل با mongodb

پرسیده شده
فعالیت 1457 روز پیش
دیده شده 1072 بار
0

با عرض سلام و درود خدمت دوستان و استاد عزیز من یک سوالی دارم که مربوط به مباحث جلوتر دوره میشه ولی با اجازتون اینجا مطرحش میکنم، من توی برنامه اکسپرسی که نوشتم سعی میکنم یک آبجکت به نام newUser را توی دیتا بیس mongodb سیو کنم منتها با خطای زیر مواجه میشم. و مونگو دی بی را هم سعی کردم از طریق mlab.com تعریف کنم و استفاده کنم ولی نشد. به خاطر همین به صورت local نصبش کردم و برای کانکت شدن به دیتا بیس از رشته ی mongodb://localhost:۲۷۰۱۷ استفاده میکنم

 

کد من در فایل users.js:

const express = require('express');
const router = express.Router();
const gravatar = require('gravatar');
const bcrypt = require('bcryptjs');

//Load User model
const User = require('../../model/User');

router.get('/test', (req, res) => res.json({
    msg: 'users is working'
}));

// @route POST api/users/register
// @desc for register user on db
// @access public
router.post('/register', (req, res) => {
    User.findOne({
            email: req.body.email
        })
        .then(user => {
            if (user) {
                return res.status(400).json({
                    email: 'email already exist.'
                });
            } else {
               
                const avatar = gravatar.url(req.body.email, {
                    s: '200', //size
                    r: 'pg', //rating
                    d: 'mm' //default
                });
             
                var newUser = new User({
                    name: req.body.name,
                    email: req.body.email,
                    password: req.body.password,
                    avatar,
                });
  
                bcrypt.genSalt(10, (err, salt) => {
                    bcrypt.hash(newUser.password , salt, (err, hash) => {
                        if (err) throw err;
                        newUser.password = hash;
                        newUser.save()  
                        .then( user => res.json(user) )
                        .catch(err => console.log(err));
                    })
                }) 
 


            }
        })
});

module.exports = router; 

 

و error ای که توی ترمینال بهم میده اینه:

PS H:\project\sample project\devconnector> npm run server

> [email protected] server H:\project\sample project\devconnector
> nodemon server.js

[nodemon] 2.0.3
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node server.js`
(node:9364) DeprecationWarning: current URL string parser is deprecated, and will be removed in a future version. To use the new parser, pass option { useNewUrlParser: true } to MongoClient.connect.
(node:9364) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Discover and Monitoring engine, pass option { useUnifiedTopology: true } to the MongoClient constructor.
app is listening to port: 500
connect to mongo db successfully
H:\project\sample project\devconnector\routes\api\users.js:42
                        if (err) throw err;
                                 ^

Error: Illegal arguments: undefined, string
    at _async (H:\project\sample project\devconnector\node_modules\bcryptjs\dist\bcrypt.js:214:46)
    at Object.bcrypt.hash (H:\project\sample project\devconnector\node_modules\bcryptjs\dist\bcrypt.js:220:13)
    at H:\project\sample project\devconnector\routes\api\users.js:41:28
    at Immediate.<anonymous> (H:\project\sample project\devconnector\node_modules\bcryptjs\dist\bcrypt.js:153:21)
    at processImmediate (internal/timers.js:456:21)
[nodemon] app crashed - waiting for file changes before starting...

 

فایل پیوست

Soroosh
Soroosh

13 اردیبهشت 99

1
حذف شده

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

فایل پیوست

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

توسط

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

13 اردیبهشت 99

حذف شده
با سلام و عرض ادب استاد من از مقادیر قبل از ساختن کاربر جدید console.logگرفتم مقادیر همونی بودن که انتظار میرفت، استاد با وجود این که با متد connect به دیتا بیس mongodb متصل میشم و اروری نمیده با این حال ممکنه ایراد از متصل نشدن به mongodb باشه؟نه از کد؟
Soroosh

13 اردیبهشت 99

حذف شده
خیلی ممنونم استاد مشکل ام حل شد یه سوتی کوچیک موقع ساخت مدل User داده بودم. به جای password نوشته بودم passwors
Soroosh

13 اردیبهشت 99

جلسه مدیریت خطاها در Express