Express.js 包含“?”的路径 url 有问题
Express.js have problem with path url including ‘?’
Express.js 没有在路径 URL 中使用 ?
。
我该如何解决这个问题?
当我点击提交按钮时,我得到了这个:
http://localhost:1000/register?username=test&password=test123
然而,这与:
http://localhost:1000/register
我搜索了很多有关如何解决 URL 路径中的 ?
问题的方法。而且有很多答案。但我只对 Express 和 JavaScript 有了一定的了解。所以我需要一个简单的答案
我需要对我的 <form></form>
元素做些什么吗?还是我必须修正我使用 app.get();
方法的方式?
快递服务器
app.get('/register?username=:username&password=:password', function(req, res) {
console.log('/register=?');
});
app.get('/register', function(req, res) {
console.log('/register);
});
HTML
<!DOCTYPE html>
<html lang="en">
<body>
<div class="content">
<div class="register">
<h1>Register</h1>
<form runat="server">
<label for="username">Username</label>
<input type="text" name="username" />
<label for="password">Password</label>
<input type="password" name="password" />
<input type="submit" value="Submit" />
</form>
</div>
</div>
</body>
</html>
您可以通过 req.query
属性 访问查询字符串参数,例如:
app.get('/register', function(req, res) {
console.log(req.query); // { username : 'test', password: 'test123' }
console.log('/register);
});
来自文档:
This property is an object containing a property for each query string parameter in the route. If there is no query string, it is the empty object, {}
.
参见:https://expressjs.com/en/api.html#req.query
您还可以删除服务器端代码中的第一个处理程序,您似乎也在尝试使用 req.params
。
req.params
可以在路由处理程序中像这样使用:
api/:api_version/songs
那么你的 URL 可能是这样的:
api/v1/songs?artist=abba
// req.params.api_version is ‘v1’
// req.query.artist is ‘abba’
Express.js 没有在路径 URL 中使用 ?
。
我该如何解决这个问题?
当我点击提交按钮时,我得到了这个:
http://localhost:1000/register?username=test&password=test123
然而,这与:
http://localhost:1000/register
我搜索了很多有关如何解决 URL 路径中的 ?
问题的方法。而且有很多答案。但我只对 Express 和 JavaScript 有了一定的了解。所以我需要一个简单的答案
我需要对我的 <form></form>
元素做些什么吗?还是我必须修正我使用 app.get();
方法的方式?
快递服务器
app.get('/register?username=:username&password=:password', function(req, res) {
console.log('/register=?');
});
app.get('/register', function(req, res) {
console.log('/register);
});
HTML
<!DOCTYPE html>
<html lang="en">
<body>
<div class="content">
<div class="register">
<h1>Register</h1>
<form runat="server">
<label for="username">Username</label>
<input type="text" name="username" />
<label for="password">Password</label>
<input type="password" name="password" />
<input type="submit" value="Submit" />
</form>
</div>
</div>
</body>
</html>
您可以通过 req.query
属性 访问查询字符串参数,例如:
app.get('/register', function(req, res) {
console.log(req.query); // { username : 'test', password: 'test123' }
console.log('/register);
});
来自文档:
This property is an object containing a property for each query string parameter in the route. If there is no query string, it is the empty object,
{}
.
参见:https://expressjs.com/en/api.html#req.query
您还可以删除服务器端代码中的第一个处理程序,您似乎也在尝试使用 req.params
。
req.params
可以在路由处理程序中像这样使用:
api/:api_version/songs
那么你的 URL 可能是这样的:
api/v1/songs?artist=abba
// req.params.api_version is ‘v1’
// req.query.artist is ‘abba’