我收到了一些奇怪的错误(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"
而不是值。
为什么?
答案 0 :(得分:0)
我认为你的js必须要做
res.redirect("/campgrounds/show/" + rows[0].campID);
而不是
res.redirect("/campgrounds/show/<%=rows[0].campID%>");
您在html模板中使用的语法通常与您用于js的语法不同。