質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

Q&A

0回答

187閲覧

mongodbを用いたログイン機能

mote

総合スコア128

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

0グッド

1クリップ

投稿2018/08/24 06:08

前提・実現したいこと

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ファイルも正常に稼働しています。
どこがいけないのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問