首页 > 关于ejs页传参的问题

关于ejs页传参的问题

刚刚在学ejs+express,正在做一个小网页。过程是这样的:
1、testA.ejs通过nodejs获取到数据库中文章的title、time、id并在网页上显示;
2、testA.ejs将文章id传给testB.ejs,testB.ejs获得文章id;
3、testB.ejs根据id来和数据库查询到对应id的文章,并显示到网页。

现在我遇到了两个问题:
1、ejs页间如何传参?
试了传统的通过href=testA.ejs?aid=来传参,但提示404.
2、在ejs模板中,怎么才能完成根据用户在文章列表中选择的文章跳转到显示对应文章详情的页面?

我能完成nodejs->js->ejs的查询数据库和存入数据库的过程,但不知如何处理多个页面的交互。因为是刚开始学,很多方面都很模糊,问的问题也小白,希望有朋友能帮我解解疑惑。非常感谢!


补充下~

根据你的需求:

可以这么写

get   ==>  /u/id

在express中这样接收

app.get('/u/:id',function(req,res){
    var id    = req.params.id;

    //操作数据库方法...    
    res.render('index',{
    //页面传值...
    });   
});

也可以这么写:

get   ==>/u?id=xxx

在express中这样接收

app.get('/u',function(req,res){
    var id    = req.query.id;

    //操作数据库方法...    
    res.render('index',{
    //页面传值...
    });   
});

要想跳转,就要有路由,现在假设你需要这样的效果
/posts ==>查询数据库,拿到全部文章posts ==> 渲染到testA.ejs(单一条的链接为/post?id=XXX)
对于单条详情:
/post?id=XX ==>查询数据库,拿到对应id文章post ==> 渲染到testB.ejs

稍微来点儿代码

app.get("/posts",function(req,res){
    //查询文章
    fetchPosts(function(err,posts){
        res.render("testA.ejs",{posts:posts})//渲染到模板
    })
})
app.get("/post",function(req,res){
    var id = req.query.id
    //查询文章
    fetchPost(id, function(err,post){
        res.render("testB.ejs",{post:post})//渲染到模板
    })
})

上面只是简单的伪代码,帮助你理解这个过程,还有问题,可以留言,另外,这个问题网上例子一大堆,建议找来看看

【热门文章】
【热门文章】