現在、これは私のnodejs/expressjsサーバーサイドコードとして持っているものです:
// Init Express Web Framework
var express = require('express');
var app = express();
var path = require('path');
// Set view engine to EJS & set views directory
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
app.set('views', path.resolve(__dirname, 'client', 'views'));
app.use(express.static(path.resolve(__dirname, 'client')));
//app.use(function(req, res, next) {
// res.header('Access-Control-Allow-Origin', '*');
// res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization');
// res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
// if (req.method === 'OPTIONS') {
// res.send(200);
// }
// else {
// next();
// }
//});
// Database Connection
var mongoose = require('mongoose');
var configDB = require('./server/config/database.js');
require('./server/routes/capture');
require('./server/routes/comment');
require('./server/routes/vote');
require('./server/routes/follow');
mongoose.connect(configDB.url);
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.text());
app.use(bodyParser.json({ type: 'application/json'}));
// Main route
app.get('/', function(req, res){
res.render('index.html');
});
// API
var api = express.Router();
require('./server/routes/capture')(api);
require('./server/routes/comment')(api);
require('./server/routes/vote')(api);
require('./server/routes/follow')(api);
app.use('/api', api);
app.use(function(err, req, res, next) {
res.status(err.status || 50, function(res) {
res.render('error.html');
});
});
// Port Settings
app.listen(process.env.PORT || 3000, process.env.IP);
console.log('Listening on port ' + process.env.PORT);
私のクライアントには 2 つのビューがあります。index.html
すべてのコンテンツがレンダリングerror.html
される場所と、500 エラーが発生した場合にユーザーをリダイレクトする場所です。現在、存在しないリンクにアクセスすると、メイン ページにリダイレクトされます。
しかし、存在するがパラメーターが存在しない URL を使用すると、500 (内部サーバー エラー) が発生します。
サーバーサイドの下部にあるコードを使用すると、これらのエラーは error.html ページにリダイレクトされると思いますが、何らかの理由でリダイレクトされません。
私のサーバーログでは、エラーは発生せず、リダイレクトされているはずですが、クライアント側では、間違ったパラメーターを使用してページをロードするだけです (もちろん、空の要素を除いて何も表示されず、何も表示されません)。
これを解決するにはどうすればよいですか?
ありがとう