0

作为一个初学者,我试图在 node 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 回答