フォームを含む/requestのページがあります。フォームメソッドはPOSTで、アクションは/requestです。 request.jsのPOSTハンドラでは、フォームデータ(DBなどに格納)で何かを実行し、/tripの別のページにリダイレクトすることです。Express.js HTTP 500エラー:ページがres.send( "Some text"); res.render( 'file')を使用するとエラーが発生します。
res.send(「ここではいくつかのテキスト)」を使用すると、GETハンドラは正常に動作します。 res.render( 'trips')を使用してページをレンダリングしようとすると、HTTP 500内部サーバーエラーが発生します。
はここrequest.jsのためのコードです:
var router = require('express').Router();
router.get('/', checkLoggedIn, function (req, res) {
res.render('request', {
user: req.user // get the user out of session and pass to template
});
});
router.post('/', checkLoggedIn, function (req, res) {
console.log(req.body); //data should be stored in DB
res.redirect('/trips'); //Should redirect to /trips after form
submission. Why ERROR 500?
});
function checkLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
return next();
}
//Redirect to home if not logged in
res.redirect('/');
}
module.exports = router;
ここtrips.jsためのコードです:
var router = require('express').Router();
router.get('/', checkLoggedIn, function(req, res) {
res.send("This is the trips route GET response!");
});
だから、一部上記はと版画「これを作品トリップルートはGETレスポンスです!私はlocalhostのアクセス:私は代わりにこれを書いたときに、それは500ローカルホストは現在、この要求を処理することができない私にHTTPエラーを与える、しかし8000 /旅行(ナビゲーションバーから、またはフォームを送信することによって)
router.get('/', checkLoggedIn, function(req, res) {
res.render('trips');
});
を。
function checkLoggedIn(req, res, next) {
if (req.isAuthenticated()) {
return next();
}
//Redirect to home if not logged in
res.redirect('/');
}
module.exports = router;
ここに私のtrips.ejs(コンテキスト用)ファイルです:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<!--<title><%= user.firstName %>'s Trips - Erkab</title>-->
<!--<meta name="viewport" content="width=device-width, initial-scale=1">-->
<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1.0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<link rel="stylesheet" href="/public/css/base.css">
<link rel="stylesheet" href="/public/css/main.css">
<link rel="stylesheet" href="/public/css/erkab.css">
<script src="/public/js/modernizr.js"></script>
</head>
<body id="top" style="width: 100%">
<% include templates/header.ejs %>
<% if (userType != "Rider") {
userType = "Driver";
} %>
<div id="changeableView" class="container-fluid">
<table class="table table-hover">
<thead class="thead-inverse">
<tr>
<th>#</th>
<th>USER TYPE</th>
<th>LOCATION</th>
<th>DATE</th>
<th>TIME</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">1</th>
<td><%= userType %></td>
<td><%= points %> - <%= area %></td>
<td><%= date %></td>
<td><%= time %></td>
</tr>
</tbody>
</table>
</div>
<script src="/public/js/jquery-2.1.3.min.js"></script>
<script src="/public/js/main.js"></script>
</body>
</html>
ノードコンソールにはどのようなエラーが記録されますか? EJSファイルが渡されていない変数を使用しようとすると、単純なことかもしれません。そのファイルの内容を 'Hello'のように変更して、レンダリングが正常に行われているかどうかを調べることができます。もしそうでなければ、設定 'views'と' view engine'を設定するために使ったコードを投稿して、正しく設定されているかを再確認することができます。 – skirtle
あなたは同じ質問を二回尋ねたようですhttps://stackoverflow.com/questions/47486074/express-js-localhost-is-currently-unable-to-handle-this-request-http-error-500 – skirtle