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

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回答

579閲覧

Expressで画面が変わらない

ask.traceroute

総合スコア4

Node.js

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

JavaScript

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

Express

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

0グッド

0クリップ

投稿2020/01/21 05:16

画面遷移ができなくて困っています。

app

1 2//ルーター 3var indexRouter = require('./routes/index'); 4var testRouter = require("./routes/test"); 5var detectionRouter = require('./routes/detection'); 6var camSettingsRouter = require('./routes/camSettings'); 7var adminRouter = require('./routes/admin'); 8 9//セッションチェック 10const sessionCheck = (req, res, next) => { 11 ... 12 next(); 13} 14const adminCheck = (req, res, next) => { 15 ... 16 next(); 17} 18 19 20app.use('/', indexRouter); 21app.use ('/', sessionCheck); 22app.use('/test', testRouter); 23app.use('/detection', detectionRouter); 24app.use('/cam_settings', camSettingsRouter); 25app.use('/admin', adminCheck); 26app.use('/admin', adminRouter); 27

admin

1var express = require('express'); 2var router = express.Router(); 3router.use(express.json); 4router.use(express.urlencoded({extended: true})); 5 6//GET 7router.get('/createuser', function(req, res, next) { 8 res.sendfile('hoge.html'); 9}); 10 11module.exports = router;

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6</head> 7<body> 8 9 <button><a href="/admin/createuser">ユーザ登録</a></button> 10 11</body> 12</html>

HTMLのボタンを押すと読み込み中になり、サーバコンソールのほうにもなにも表示されません。
その後、接続を拒否されましたとなり遷移ができません。
その時にサーバコンソールには
GET /admin/createuser - - ms - -と出力されていました。
admin以外のパスには遷移できます。

ボタンを押すと、セッションチェックのadminCheckが動作し、その後next()で次の処理に中継されるのですが、adminCheckまでは実行され、そのあと止まってしまいます。

正しく遷移させるためにはどうしたらいいでしょうか。

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

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

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

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

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

guest

回答1

0

自己解決

ただのコードの書き間違い

admin

1ar express = require('express'); 2var router = express.Router(); 3router.use(express.json); 4router.use(express.urlencoded({extended: true})); 5 6//GET 7router.get('/createuser', function(req, res, next) { 8 res.sendfile('hoge.html'); 9}); 10 11module.exports = router;

このコードの上から3行目の部分

router.use(express.json);が間違いで正しくは
router.use(express.json());でした。

投稿2020/01/22 01:00

ask.traceroute

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問