2017-02-10 38 views
-1

我得到一些奇怪的錯誤(Express 400錯誤:錯誤請求)在html中使用js變量

有些行被轉換爲變量值,有些只是作爲錯誤輸出。

這是我的代碼

exports.add_comment = function(req, res){ 

    var id = req.params.id; 

    req.getConnection(function (err, connection) { 

    connection.query('Select * from Campgrounds where campID = ?', [id], function(err, rows){ 
     if (err) { 
     console.log(err); 
     } else { 
     res.render('add_comment',{page_title:"Add Comment", data:rows}); 
     } 
    }); 
    }); 
}; 


exports.save_comment = function(req,res){ 

    var id = req.params.id; 
    var input = JSON.parse(JSON.stringify(req.body)); 

    req.getConnection(function (err, connection) { 
    connection.query('Select * from Campgrounds where campID = ?', [id], function(err, rows){ 
    if (err) { 
     console.log(err); 
     var test = '<%= data[i].campID %>'; 
     res.redirect("/campgrounds/show/" + test); 
    } else { 
     var data = { 

     campID  : rows[0].campID, 
     comment  : input.content, 
     camper  : input.camper 
     }; 

     connection.query('INSERT INTO Comments set ?', data, function(err, rows) 
     { 

     if (err) 
      console.log("Error inserting : %s ",err); 

      res.redirect("/campgrounds/show/<%=rows[0].campID%>"); 

     }); 
    } 

    }); 
}); 
}; 

的例子,多數民衆贊成在EJS文件 - add_comment.ejs

<%- include layouts/header.ejs %> 

<div class="container"> 
<div class="row"> 
    <div class="col-md-6 col-md-offset-3 col-sm-6 col-xm-offset-3"> 
    <div class="well"> 
     <h2 class="text-center">Add new Comment</h2> <p><%=data[0].campID%></p> 
     <form method="post" action="/campgrounds/show/<%=data[0].campID%>/comments/add"> 
      <div class="form-group" style="margin: 10%;"> 
      <label>Content</label> 
      <input type="textarea" name="content" class="form-control input-lg" /> 
      </div> 
      <div class="form-group" style="margin: 10%;"> 
      <label>camper</label> 
      <input type="text" name="camper" class="form-control input-lg" /> 
      </div> 
      <div class="form-group" style="margin: 10%; margin-bottom: 15px;"> 
      <button class="btn btn-primary btn-lg btn-block" >Submit</button> 
      </div> 
     </form> 
     <p style="margin: 10%; margin-top: 0px;"><a href="/campgrounds/show/<%=data[0].campID%>">Go back!</a></p> 
    </div> 
    </div> 
</div> 

<%- include layouts/footer.ejs %> 

現在,當我啓動服務器時,「回去「按鈕,例如確實工作,並翻譯href="..<%=data[0].campID%>" campID值(2)

當我使用提交按鈕相同<%=data[0].campID%>變成"%3C%=rows[0].campID%%3E"而不是值。

這是爲什麼?

回答

0

我想在你的JS,你所要做的

res.redirect("/campgrounds/show/" + rows[0].campID);

而不是

res.redirect("/campgrounds/show/<%=rows[0].campID%>");

你在HTML模板中使用的語法通常會比你不同用於你的js。