2017-12-12 8 views
0

私はMEAN APPを作成しています。登録時に、電子メールが既に存在するかどうかを確認したいと思います。ただし、GETリクエストには何も表示されません。エラーもありません。私もルートの冒頭ではconsole.logが表示されていないので、GETリクエストルート意味

... 
// Set user routes 
const userRoutes = require('./user/user_controller'); 
app.use('/user', userRoutes); 
...' 

user_controller.js

router.get('/:email', (req, res) => { 
console.log('Requesting user'); 
User.findOne({'email': req.params.email}) 
    .exec(function(err, user) { 
     if(err) { 
      console.log('Error getting the post'); 
     } else { 
      res.send(user); 
     } 
    }); 
}); 

server.jsはGETルートが入ることはありません。私はローカルホスト/ユーザーを呼び出すとき、私はルートが動作することを期待し、電子メール=メール

私はローカルホスト/ユーザのために完璧に動作whih POSTルートを持っている - ?ちょうど

router.post('/', (req, res) => { 
user = req.body; 
// Validation 
req.checkBody('firstName', "Enter a valid firstname").exists().isAlpha(); 
req.checkBody('lastName', 'Enter a valid lastname').exists().isAlpha(); 
req.checkBody('email', 'Enter a valid email').exists().isEmail(); 
req.checkBody('password', 'Enter a valid password').exists().isLength({min:8}); 

const errors = req.validationErrors(); 

if(errors) { 
    res.json({errors: errors}); 
} else { 
    User.create(user) 
    .then((user) => res.send(user)); 
} 
}); 
+0

あなたは 'localhost/user/someemail'のようにparamsを使用しています。 'localhost/user?email = email'を呼び出すと、あなたのルートは提供されたルートと決して一致しません – vibhor1997a

答えて

0

を比較するために、あなたは間違っている、あなたのルートを呼んでいますway、

これらのいずれかを実行できます。あなたはこのルートパス/ない/:emailと一致し、あなたがreq.query.emailのようにアクセスすることができますので、あなたがlocalhost/user?email=emailそれを呼んでいたと述べたよう

1)/ にあなたのルートのパスを変更します。

2)あなたはlocalhost/user/someemailのようにそれを呼び出す/:emailルートパスで使用する場合は、それ を呼んでいる方法を変更します。