在html中使用js变量

时间:2017-02-10 17:14:26

标签: javascript node.js express

我收到了一些奇怪的错误(Express 400错误:错误的请求)

某些行被转换为变量值,而有些行仅作为错误输出。

这是我的代码

的一个例子
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 %>

现在,当我启动服务器时,&#34;返回&#34;例如,按钮可以工作并将href="..<%=data[0].campID%>"转换为campID值(2)

当我使用提交按钮时,相同的<%=data[0].campID%>变为"%3C%=rows[0].campID%%3E"而不是值。

为什么?

1 个答案:

答案 0 :(得分:0)

我认为你的js必须要做

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

而不是

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

您在html模板中使用的语法通常与您用于js的语法不同。