我使用与快递和EJS的NodeJS。
每一个互联网上询问如何从节点传递价值的观点,但什么相反?
例如,我问我的用户输入的字符串的形式,当用户点击该按钮时,我怎么能得到这个字符串,而不把它当作URL中的参数?
表格:
<div class="container">
<form style="width:50%">
<div class="form-group">
<label for="text">Name of the product</label>
<input type="text" class="form-control" id="pName">
</div>
<div class="form-group">
<label for="text">Reciever</label>
<input type="text" class="form-control" id="reciever">
</div>
<div class="form-group">
<label for="text">Location</label>
<input type="text" class="form-control" id="location">
</div>
<!-- <div class="checkbox">
<label><input type="checkbox"> Remember me</label>
</div>-->
<button type="submit" class="btn btn-default">Submit</button>
</form>
在app.js
var express = require('express');
var app = express();
//ALL GLOBAL VARIABLES
var port = 8080;
app.get('/', function(req, res) {
res.render('index.ejs');
});
app.get('/barcode', function(req,res) {
res.render('barcode.ejs');
});
app.listen(port);
我知道我能做到这一点:
app.get('/url/:parameter', function(req.res) {
var foo = req.params.parameter;
}
但是,如果我不希望使用URL,是可以检索数据?
使用POST的方法为你的HTML表单
<form action="/myapi" method="post">
<input type="text" class="form-control" id="pName" name="pName">
<button type="submit" class="btn btn-default">Submit</button>
</form>
然后处理在后端的客户端形式的“行动”与app.post
app.post('/myapi', function(req, res) {
res.send('The pName is "' + req.body.pName + '".');
});
您可以使用POST方法而不是GET。您需要在您的快速改变路线
app.post('/url', function(req.res))
并在窗体上添加一个方法
<form style="width:50%" method="POST">
如果使用POST请求的参数是不是URL的一部分。例如。
app.post('/path', function(req, res) {
...
//You can retrieve the parameters of the POST request here
]);
你需要的body-parser
模块,能够得到这个职位的参数。这里的an answer约一旦你建立路由如何获得POST参数。
您的形式应该有一个方法和行动:
<form action="/path" method="POST">...</form>
从你的问题,一般来说,如果你想从唯一ID的价值,你将存储该值作为一个全局变量。所以你可以很容易地获取当前用户和用户相关的细节。