这是我第一次设置服务器并需要帮助。因此,我的目标是通过NodeJS和Expresss设置服务器。假设我们有一个具有Admin和Users的应用程序。管理员单击按钮后,它将为服务器发送一些数据,然后用户可以获取数据。
这是我的服务器设置:
const el = document.getElementById('myForm');
if (el) el.reset();
我可以添加一些发布方法,比如说:
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => res.send('Hello World!'))
app.listen(port)
因此,我可以为 app.post('/', (req, res) => ....);
的POST方法准备服务器响应,但是我不知道如何通过单击按钮从我的应用发送一些数据(我的意思是listening
这个post方法)。我看过很多教程,还没有看过任何实际的练习。
答案 0 :(得分:2)
要接收POST
参数,您需要body-parser
模块,您可以像这样将其包含在app.js
中,
var bodyParser = require('body-parser');
app.use(bodyParser.json());
这是您如何接收通过POST
方法发送的表单字段的方法,
app.post('/', function(req, res) {
var someField1 = req.body.some_form_field;
var someField1 = req.body.form_field1;
});
希望这会有所帮助!
答案 1 :(得分:1)
在快递服务器上
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.post("/", (req,res) => {
res.send("Hello");
});
在您的网页/应用上,您可以使用axios。 假设您的Express服务器使用本地主机和端口4000运行。
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
var instance = axios.create({
baseURL: "http://localhost:4000" //use your express server's url(address) and port here
});
function onclick(){
instance.post("/").then( response => {
//response.data will have received data
}
}
</script>
您可以使用此功能并在单击按钮时调用它
答案 2 :(得分:0)
您可以在HTML页面中像这样简单地使用jquery来调用您的api:
$("button").click(function(){
$.post("/", function(data, status){
alert("Data: " + data + "\nStatus: " + status);
});
});
并从您的api发送数据:
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.post('/', function(req, res) {
var obj = {};
obj.name="hello";
obj.lname="world"
res.json(obj);
});
答案 3 :(得分:0)
示例:
HTML: 您的表单元素应具有名称(必填),以便在帖子正文请求中访问这些元素。
<form method="post" action="/">
<input type="text" name="Name" />
<br>
<input type="text" name="Telephone" />
<br>
<input type="submit" />
</form>
app.js
const express = require('express')
const app = express()
const port = 3000
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.post('/', (req, res) => {
name = req.body.Name;
telephone = req.body.Telephone;
res.render('somefolder/index', {
name: name,
telephone: telephone,
});
// Above code is for reference if you want to load another page after post complete and get posted values in this page too.
res.end();
});