0

ノードjsでexpressを使用して非常に単純なサービスを開発しようとしている初心者である私のサービスの目的は、値を取得し、送信後に次のページに表示される単純なインデックスページです。

問題:ターミナル、つまりノードapp.jsから実行すると、サーバーはポート3000で実行を開始しますが、ブラウザで実行すると、たとえばFire Foxでは、次のエラーが表示されます。「ページが正しくリダイレ​​クトされていません。

Firefoxは、サーバーがこのアドレスの要求を決して完了しない方法でリダイレクトしていることを検出しました。この問題は、Cookieの受け入れを無効にするか拒否することによって発生する場合があります。Firefoxは、サーバーがこのアドレスの要求を決して完了しない方法でリダイレクトしていることを検出しました。この問題は、Cookieの受け入れを無効にするか拒否することによって発生する場合があります。

以下は私のサーバーのApp.jsファイルのコードです

var express = require('express');
var service = require('./routes/service');
var app = module.exports = express.createServer();

// Configuration
app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(express.cookieParser());
  app.use(express.session({ secret: 'your secret here' }));
  app.use(require('stylus').middleware({ src: __dirname + '/public' }));
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
});

app.configure('production', function(){
  app.use(express.errorHandler());
});

// Routes
app.get('/', service.home);
app.post('/',service.home_post_handler);
app.get('/items', service.items);
app.listen(3000, function(){
  console.log("Express server listening on port %d in %s mode", app.address().port, app.settings.env);
});

Service.js(ルート定義)

exports.home= function(req,res){
  if(typeof req.message== 'Undefined')
    res.render('home', {title:'My Service'});
  else
    res.redirect('/items');
};

exports.home_post_handler = function(req,res){
  message = req.body.message || 'Message Command is Empty';
  req.message = message;
  res.redirect('/');
}

// Just using cox in tutorial there they use it as database
/*var items = {
  WEL:{name:'Welcome Dear'}
}*/

exports.items = function(req,res){
  if(typeof req.message == 'undefined')
    res.redirect('/');
  else
    res.render('items',{title:'My Service - Message', message:req.body.message, items:items});
}; 
4

1 に答える 1

0

次のミドルウェアは、相互にリダイレクトし続ける可能性があります。

exports.home= function(req,res){
  if(typeof req.message== 'Undefined')
    res.render('home', {title:'My Service'});
  else
    res.redirect('/items');
};

exports.items = function(req,res){
  if(typeof req.message == 'undefined')
    res.redirect('/');
  else
    res.render('items',{title:'My Service - Message', message:req.body.message, items:items});
}; 
于 2012-05-21T19:34:27.733 に答える