Express - 如何将参数值从app.post方法重定向到app.get方法

时间:2018-02-26 05:42:10

标签: node.js express neo4j ejs

我是nodejs和expressjs的新手。

我正在创建一个非常简单的单页nodejs应用程序,它将从用户获取一个数字,并根据该值返回Neo4j数据库中的行数。

为此,我使用一个app.js文件,其中app.post()和app.get()方法都在那里。我正在尝试使用app.post()方法的值,即“行”进入app.get('/ post / output /')方法,但我无法做到这一点。

以下是我能写的代码:

app.get('/', function(req,res,next){
res.render('index1');
});

app.post('/post', function(req,res,next){
var Rows = req.body.Rows;
res.redirect('/post/output/');
});

app.get('/post/output/',function(req,res,next){
console.log(Rows);
session
.run('MATCH (N:NewsMedia) RETURN N ORDER BY N.Audience DESC LIMIT 
{nameparam}',{nameparam:Rows})
.then(function(result){
    var newsmedia = []; 
    result.records.forEach(function(record){
        newsmedia.push({
            name: record._fields[0].properties.name,
            size: record._fields[0].properties.Audience
        });
    });
    res.render('index',{
        NewsMedia: newsmedia
    }); 
})
.catch(function(err){
    console.log(err);
});
})

1 个答案:

答案 0 :(得分:-1)

如果您不是从客户端调用GET,则必须从post重定向到GET。此外,您不需要具有全局变量Name。

app.post('/', function(req,res,next){
Name = req.body.fName;
   console.log(Name);
  res.redirect('/register')
})
app.get('/',function(req,res,next){
 console.log(Name);
   next();
});
app.get('/',function(req,res){
 console.log(Name);
session
    .run('MATCH (N:NewsMedia) RETURN N ORDER BY N.Audience DESC LIMIT {nameparam}',{nameparam:Name})
    .then(function(result){
        var newsmedia = []; 
        result.records.forEach(function(record){
            newsmedia.push({
                name: record._fields[0].properties.name,
                size: record._fields[0].properties.Audience
            });
        });
        res.render('index',{
            NewsMedia: newsmedia
        }); 
    })
    .catch(function(err){
        console.log(err);
    });
})