对于我的课程,我必须设计一个应用程序,在页面顶部显示传入的请求是GET还是POST,然后必须打印一个表格,显示在URL查询字符串中发送的所有参数名称和值,以及请求正文中收到的属性名称和值。 到目前为止,我已经能够使我的localhost:端口工作,它正确显示请求是GET还是POST。但是当我转到应该显示表格的子页面时,我得到的是404。
以下是我认为导致问题的渲染页面:
function runQ(req) {
console.log(req.qParams);
console.log(req.body);
var context = {};
context.queryParams = [];
context.bodyParams = [];
context.queryCount = 0;
context.bodyCount = 0;
for( var p in req.qParams) {
context.queryCount++;
context.queryParams.push({'name': p, 'value': req.qParams[p] });
}
for( var p in req.body) {
context.bodyCount++;
context.bodyParams.push({'name': p, 'value': req.body[p] });
}
context.methodType = req.method;
return context;
}
app.get('/request', function(req, res) {
res.render('request', runQ(req));
});
app.post('/request', function(req, res) {
res.render('request', runQ(req));
});
我在我的ubuntu / getpost / views文件夹中保存了request.handlebar以及404和500把手。
我用于测试的命令是:
$ curl --data "a=1&b=2&c=3" localhost:port
当我运行节点时,我用实际的IP和端口地址替换了localhost:port。 我的控制台在运行节点的选项卡上返回此信息:
undefined
{ a: '1', b: '2', c: '3' }
这在我输入cURL命令的选项卡上:
<!doctype html>
<html>
<head>
<title>Demo Page</title>
</head>
<body>
<h1>POST Request Received</h1>
<table>
<caption><p>Request Body Table</p></caption>
<thead>
<tr>
<th>Property Names</th>
<th>Values</th>
</tr>
</thead>
<tbody>
<tr>
<td>a</td>
<td>1</td>
</tr>
<tr>
<td>b</td>
<td>2</td>
</tr>
<tr>
<td>c</td>
<td>3</td>
</tr>
</tbody>
</table>
</body>
所以一切似乎都在从控制台运行,但是当我尝试访问localhost:port / request时,我转到404错误而不是显示表格的页面。
谁能告诉我我做错了什么?谢谢大家的时间。