Ошибка: недопустимые аргументы: не определено, строка - PullRequest
0 голосов
/ 01 октября 2018

Я боролся с Bcrypt в моем проекте MERN, я пытаюсь запустить тесты на Postman (процесс регистрации), но каждый раз, когда я пытаюсь это сделать, я получаю эту ошибку: Ошибка: недопустимые аргументы: не определено,строка в этой строке:

if (err) throw err;

Это основной файл конфигурации моего сервера:

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

const users = require('./routes/api/users');
const profile = require('./routes/api/profile');
const posts = require('./routes/api/posts');

const app = express();

// Body parser Middleware
app.use(bodyParser.urlencoded({
  extended: false
}));
app.use(bodyParser.json());

// MongoDB Config
const db = require('./config/keys').mongoURI;

// MongoDB Connection
mongoose
  .connect(db)
  .then(() => console.log('MongoDB Connected'))
  .catch(err => console.log(err));

app.get('/', (req, res) => res.send('Hello!'));

const port = process.env.PORT || 3000;

app.listen(port, () => console.log(`Server Runing on port ${port}`));

// Using Routes

app.use('/api/users', users);
app.use('/api/profile', profile);
app.use('/api/posts', posts);

И это файл конфигурации пользователя, в котором я получаю сообщение об ошибке:

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

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

router.get('/test', (req, res) => res.json({ msg: "Users Works" }));

router.post('/register', (req, res) => {
  User.findOne({ email: req.body.email })
    .then(user => {
      if (user) {
        return res.status(400).json({ email: "Email already exists" });
      } else {
        const avatar = gravatar.url((req.body.email, {
          s: '200', // Size
          r: 'pg', // Rating
          d: 'mm'  // Default image
        }));

        const newUser = new User({
          name: req.body.name,
          email: req.body.email,
          avatar,
          password: req.body.password
        });
        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;

это то, что я вижу на Почтальоне:

enter image description here

Я просматривал это, и это не похоже наесть какая-либо ошибка, и я действительно не понимаю, почему говорит мне "неопределенная строка".Если вы увидите какую-либо ошибку, которую я не замечаю, я буду очень признателен за ваш отзыв, заранее спасибо!

1 Ответ

0 голосов
/ 01 октября 2018
   const newUser = new User({
      name: req.body.name,
      email: req.body.email,
      avatar,  <------------------------- avatar:'', or avatar:null,
      password: req.body.password
    });
...