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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

Q&A

解決済

1回答

7147閲覧

Node.js expressリダイレクトができない

Abenosan

総合スコア25

Node.js

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Express

ExpressはNode.jsのWebアプリケーションフレームワークです。 マルチページを構築するための機能セットおよびハイブリッドのWebアプリケーションを提供します。

0グッド

0クリップ

投稿2018/08/29 02:51

編集2018/08/29 03:04

・問題
ログイン判定をして、違うページに飛ばしたいのですが、リダイレクトができない問題に直面しています。

・したいこと
res.redirect('/admin');でadmin.jsを動かし、表示させたいです。

こちらがソースコードの一部になります

app.js一部

var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var session = require('express-session'); var usersRouter = require('./routes/users'); var login = require('./routes/login'); var admin = require('./routes/admin'); var app = express(); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'ejs'); app.use(logger('dev')); app.use(express.json()); app.use(express.urlencoded({ extended: false })); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use(session({ secret: 'keyboard cat', resave: false, seveUniitialized: true })); app.use('/', login); app.use('/users', usersRouter); app.use('/admin',admin);

login.js

var express = require('express'); var router = express.Router(); var sqlite3 = require('sqlite3'); // データベースオブジェクト取得 var db = new sqlite3.Database('ChieproDB.sqlite3'); /* GET home pa0ge. */ router.get('/', function(req, res, next) { res.render('login', { title: 'ChiePro管理システム', message : 'ログインpackageに接続' }); }); router.post('/',function(req,res,nxet){ var id = req.body.id; var pass = req.body.pass; var query = `select * from account where admin_id = "${id}" AND admin_pass = "${pass}"`; db.all(query,function(err,rows){ if(rows.length){ console.log('一致'); res.redirect('/admin');     //ここで admin 飛ばしてます。 ※エラー発生 Not Found 404 }else{ res.render('login',{ title: 'ChiePro管理システム', message : 'IDかパスワードが間違っています。' }); } }); }); module.exports = router;

飛ばしたい先 ejs js
ファイル名 routes の中 「admin.js」

var express = require('express'); var router = express.Router(); /* GET users listing. */ router.get('/admin', function(req, res, next){ res.renber('admin', { title: '管理画面', message: '成功しました' }); }); module.exports = router;

ファイル名 viewsの中 「admin.ejs」

<!DOCTYPE html> <html> <head> <title>管理画面</title> <link rel='stylesheet' href='/stylesheets/style.css' /> <!-- bootstrap4 --> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> </head> <body> <div class="conteiner bg-light col-md-5 p-5 shadow-lg rounded mx-auto"> <h1 class="text-center"><%= title %></h1> <h6 class="text-center"><%= message %></h6> </div> </body> </html>

error コード

Not Found 404 NotFoundError: Not Found at C:\Users*******\Desktop\atm\app.js:36:8 at Layer.handle [as handle_request] (C:\Users*******\Desktop\atm\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (C:\Users*******\Desktop\atm\node_modules\express\lib\router\index.js:317:13) at C:\Users*******\Desktop\atm\node_modules\express\lib\router\index.js:284:7 at Function.process_params (C:\Users*******\Desktop\atm\node_modules\express\lib\router\index.js:335:12) at next (C:\Users*******\Desktop\atm\node_modules\express\lib\router\index.js:275:10) at C:\Users*******\Desktop\atm\node_modules\express\lib\router\index.js:635:15 at next (C:\Users*******\Desktop\atm\node_modules\express\lib\router\index.js:260:14) at Function.handle (C:\Users*******\Desktop\atm\node_modules\express\lib\router\index.js:174:3) at router (C:\Users*******\Desktop\atm\node_modules\express\lib\router\index.js:47:12)

]イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

admin.jsの中の記述で

res.renber('admin', { title: '管理画面', message: '成功しました' });

がありますが、正しくは

res.render('admin', { title: '管理画面', message: '成功しました' });

です。

投稿2018/08/29 03:11

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Abenosan

2018/08/29 03:12

訂正しましたが、それでも同じエラーを吐かれます・・・
退会済みユーザー

退会済みユーザー

2018/08/29 03:15

ブラウザのキャッシュを消してサーバの再起動したらどうなりますか?
Abenosan

2018/08/29 03:18

それでもだめでした・・・orz.....
退会済みユーザー

退会済みユーザー

2018/08/29 03:24 編集

admin.jsの中の、 router.get('/admin', function(req, res, next){ res.renber('admin', { title: '管理画面', message: '成功しました' }); }); を router.get('/', function(req, res, next){ res.renber('admin', { title: '管理画面', message: '成功しました' }); }); に変えてください
Abenosan

2018/08/29 03:26

出来ました、ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問