Node.js 节点如何从表单捕获数据?

Node.js 节点如何从表单捕获数据?,node.js,post,body-parser,Node.js,Post,Body Parser,ejs文件中的相关行: <form action="/foo" method="post"> 单击ejs文件中的submit按钮时,数据将附加到“/foo请求对象 app.js是否因为调用此函数而能够访问请求对象function(req,res)?在我看来,似乎我们正在发出一个新的请求 还有第一个参数的用途是什么?即“app.post(“/foo”)这是您的app.js在端口3000上侦听 var express = require('express') var app = exp

ejs文件中的相关行:

<form action="/foo" method="post">
单击ejs文件中的submit按钮时,数据将附加到“/foo请求对象

app.js是否因为调用此函数而能够访问请求对象
function(req,res)
?在我看来,似乎我们正在发出一个新的请求


还有第一个参数的用途是什么?即“app.post(“/foo”)

这是您的app.js在端口3000上侦听

var express = require('express')
var app = express();
var bodyParser = require('body-parser')

app.post('/foo', urlencodedParser, function (req, res) {

  res.send('welcome, ' + req.body.username)
});

 //starting server
 app.listen('3000',function(){
 console.log("App started on port 3000.");
 });
在这里,您将express的实例存储在express变量中,它将具有所有express功能。 现在我们通过调用它的构造函数来启动express,第行下面就是这样做的

var app = express();
下面,我们正在创建一个实例,它可以帮助我们在节点应用程序中读取请求正文

var bodyParser = require('body-parser')
现在我们在应用程序中使用body parser,如下所示:

app.use(bodyParser.json())
在上面的一行中,我们正在解析json格式的请求体,以便可以访问json格式的请求体

现在app变量将在某些端口上侦听,例如3000,之后当用户提交表单时,例如此表单:

<form action="/foo" method="post">

在上面的函数中,我们使用用户名发送响应,用户名与从请求正文中获得的消息“username”连接在一起。

可以通过以下步骤实现这一点

  • craete是express模块的对象
    var-app=express();
  • 创建一个body parser实例,帮助我们在节点应用程序中读取请求正文。
    var parser=require('body-parser')
  • 在我们的应用程序中使用解析器
    app.use(bodyParser.json());
    在这里,您将获得json格式的请求正文
  • 当用户提交表单时,后台运行的节点应用程序将使用post方法侦听“/foo”路由。 因此,当使用方法post的“/foo”路由被命中时,它将转到它的函数体并运行它

  • 此函数使用用户名(我们从请求主体获得)和消息发送响应

  • 接下来是:--[app.post('/foo')的用途是什么 当用户提交表单时,后台运行的节点应用程序使用post方法侦听“/foo”路由(服务器收到一个具有/foo的请求)。 因此,当使用方法post的“/foo”路由被命中时,它将转到它的函数体并运行它

    app.use(bodyParser.json())
    
    <form action="/foo" method="post">
    
    app.post('/foo', urlencodedParser, function (req, res) {
            res.send('welcome, ' + req.body.username)
    }