Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 通过点击提交按钮(express)发布表单值_Node.js_Express - Fatal编程技术网

Node.js 通过点击提交按钮(express)发布表单值

Node.js 通过点击提交按钮(express)发布表单值,node.js,express,Node.js,Express,我开始使用nodejs和express来构建一个非常简单的应用程序 到目前为止,我正在运行一个Web服务器,并为我的index.html添加了一个app.get路由,该路由显示两个表单和一个提交按钮 我希望能够在这两种表单中键入字符串,单击submit按钮,然后在我的服务器上使用这两个字符串(使用表单中的这两个字符串调用函数) 服务器: var express = require('express'); var app = express(); //body-parser -> not

我开始使用nodejs和express来构建一个非常简单的应用程序

到目前为止,我正在运行一个Web服务器,并为我的index.html添加了一个app.get路由,该路由显示两个表单和一个提交按钮

我希望能够在这两种表单中键入字符串,单击submit按钮,然后在我的服务器上使用这两个字符串(使用表单中的这两个字符串调用函数)

服务器:

var express = require('express');
var app = express();

//body-parser -> not sure if thats the right approach...
var bodyParser = require('body-parser');
app.use(bodyParser.json());


 /* servers main page */
 app.get("/", function(req, res) {
    res.sendFile(__dirname + '/index.html');
 });


//POST route
app.post('/', function(req, res) {


//goal: user types string in both forms, clicks submit, values are being 
//received from server to call a function using those strings



});

 var port = process.env.PORT || 1337;
 app.listen(port, function() {
console.log("Listening on " + port);
 });
<form action="" method="POST">
   Subject:<br>
   <input type="text" name="subject" value="default"><br>
   Message:<br>
   <input type="text" name="message" value="default"><br><br>
   <input  type="submit" name="submit" value="Submit">
</form>
HTML:

var express = require('express');
var app = express();

//body-parser -> not sure if thats the right approach...
var bodyParser = require('body-parser');
app.use(bodyParser.json());


 /* servers main page */
 app.get("/", function(req, res) {
    res.sendFile(__dirname + '/index.html');
 });


//POST route
app.post('/', function(req, res) {


//goal: user types string in both forms, clicks submit, values are being 
//received from server to call a function using those strings



});

 var port = process.env.PORT || 1337;
 app.listen(port, function() {
console.log("Listening on " + port);
 });
<form action="" method="POST">
   Subject:<br>
   <input type="text" name="subject" value="default"><br>
   Message:<br>
   <input type="text" name="message" value="default"><br><br>
   <input  type="submit" name="submit" value="Submit">
</form>

主题:

信息:



首先,忘记
bodyParser
中间件,
json
urlencoded
解析器从4.16开始就包含在express中

然后,您没有AJAX调用,而是一个简单的表单,因此这是无效的

app.use(bodyParser.json());

最后,在路由中,只需从解析中间件附加到请求的
body
对象中读取发布的值

//POST route
app.post('/', function(req, res) {

   var subject = req.body.subject;
   var message = req.body.message;

});

可能是重复的感谢,这是完美的工作。我想可能需要一些类似的onclick活动……太棒了。