前提・実現したいこと
node.jsでmongodbを用いたログイン機能
発生している問題・エラーメッセージ
ejsで記述したフォームにname,passを入れて送信を送るとエラーになる
エラーメッセージ
該当のソースコード
node.js
ソースコード
var express = require('express');
var router = express.Router();
router.get('/', (req, res, next) => {
var data = {
title:'ログイン画面',
form:{name:" ",password:" "},
content:'※登録する名前・学生番号を入力してください。'
}
res.render('login', data);
});
router.post('/login', (req, res, next) => {
var request = req;
var response = res;
req.check('name','NAME は必ず入力して下さい。').notEmpty();
req.check('password','学生番号 は必ず入力して下さい。').notEmpty();
req.getValidationResult().then((result) => {
if (!result.isEmpty()) {
var content = '<ul class="error">';
var result_arr = result.array();
for(var n in result_arr) {
content += '<li>' + result_arr[n].msg + '</li>'
}
content += '</ul>';
var data = {
title: 'ログイン画面',
content:content,
form: req.body
}
response.render('login', data);
} else {
request.session.login = null;
new User(req.body).save().then((model) => {
response.redirect('/');
});
}
});
});
router.post('/', (req, res, next) => {
var request = req;
var response = res;
req.check('name','NAME は必ず入力して下さい。').notEmpty();
req.check('password','PASSWORD は必ず入力して下さい。').notEmpty();
req.getValidationResult().then((result) => {
if (!result.isEmpty()) {
var data = { title: '学生番号', content:content, form: req.body } response.render('login', data); } else { var name = db.name.find(null,{name:1}) ; var password = db.password.find(null,{password:1}) var nm = req.body.name; var pw = req.body.password; if(name==nm$&&password==pw){ // User.query({where: {name: nm}, andWhere: {password: pw}}) // .fetch() // .then((collection) => { // if (collection == null){ var data = { title:'学生番号', content:'<p>ログインしました!</p>', form: req.body }; response.render('login',data); } else { var data = { title:'再入力', content:'<p class="error">名前または学生番号が違います。</p>', form: req.body }; response.render('login',data); } } }); });
module.exports = router;
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
MONGOにデータが入っている事は確認しました
ejsファイルも正常に稼働しています。
どこがいけないのでしょうか?
あなたの回答
tips
プレビュー