搜尋

首頁  >  問答  >  主體

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

阿神阿神2787 天前663

全部回覆(2)我來回復

  • 迷茫

    迷茫2017-04-17 11:41:00

    補充下~

    • get 將你要取得的參數傳到後台,讓後台返回,頁面跳轉
    • post 將你要處理的參數傳到後台,讓後台處理,頁面跳轉

    依你的需求:

    可以這麼寫

    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',{
        //页面传值...
        });   
    });
    

    回覆
    0
  • PHPz

    PHPz2017-04-17 11:41:00

    要想跳轉,就要有路由,現在假設你需要這樣的效果
    /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})//渲染到模板
        })
    })
    

    上面只是簡單的偽代碼,幫助你理解這個過程,還有問題,可以留言,另外,這個問題網上例子一大堆,建議找來看看

    回覆
    0
  • 取消回覆