Javascript 如何从app.js处理Express 4/nodejs中的get/post,将数据从表单传递到显示结果的新页面

Javascript 如何从app.js处理Express 4/nodejs中的get/post,将数据从表单传递到显示结果的新页面,javascript,node.js,express,Javascript,Node.js,Express,我相信这是一个可笑的简单问题,但我想我现在在回答这个问题时有一个心理障碍 我已经安装了node.js和express 4,我可以毫无问题地运行静态页面。我想做的是创建一个表单来捕获一些数据,然后在结果页面中显示我在表单中捕获的数据。我正在使用Jade来处理HTML部分 在app.js文件中,我只更改了以下内容: 我有一个简单的sampleform.jade文件: html head title Sample Form body h2 Sampl

我相信这是一个可笑的简单问题,但我想我现在在回答这个问题时有一个心理障碍

我已经安装了node.js和express 4,我可以毫无问题地运行静态页面。我想做的是创建一个表单来捕获一些数据,然后在结果页面中显示我在表单中捕获的数据。我正在使用Jade来处理HTML部分

在app.js文件中,我只更改了以下内容:

我有一个简单的sampleform.jade文件:

html
    head
        title Sample Form
    body
        h2 Sample Form
        form(name='sampleform' action='/sampleform' method='post')
            table(border='0')
                tr
                    td Name
                    td 
                        input(name='name' type='text' size='30')
                tr
                    td Email
                    td
                        input(name='email' type='text' size='30')
                tr
                    td
                        input(type='submit', name='submit', value='Submit')
使用以下sampleform.js,我可以毫无问题地加载表单:

var express = require('express');
var router = express.Router();

/* GET sample form page. */
router.get('/sampleform', function(req, res) {
    res.render('sampleform');
});

router.post('/showresults', function(req, res) {
    res.render('showresults')
});

module.exports = router;
html
    head
        title Show Results
    body
        h2 Show Results
showresults.jade当前只有静态内容(我没有showresults.js,因为此页面仅从sampleform.js调用):

我需要的是,在sampleform中单击submit按钮后,将显示名为showresults的新页面(它最终将拥有来自sampleform的数据,但我现在只需要加载该页面)。上面sampleform.js中的代码生成404错误,我知道它不起作用。我能做些什么呢?我在app.js代码中遗漏了什么吗


提前感谢您的帮助

据我所见,您将表单提交到您的Jade文件中的
GET
路径,而不是
POST
路径,如下所示:

form(name='sampleform'action='/sampleform'method='post')

因此,您需要将表单提交发送到
POST
,而不是发送到
GET
请求。您已在此处声明了
POST
路线:

router.post('/showresults',函数(req,res){


因此,您应该只将
操作
从Jade文件中的表单更改为指向
/showresults
,因为这是一个
POST
路径,而不是
GET/sampleform
。从那里,您只需要调用
req.body
来检索您之前提交的整个表单。

谢谢!这就是定义y给我指出了正确的方向。我想我是在试图让事情变得更加复杂。
var express = require('express');
var router = express.Router();

/* GET sample form page. */
router.get('/sampleform', function(req, res) {
    res.render('sampleform');
});

router.post('/showresults', function(req, res) {
    res.render('showresults')
});

module.exports = router;
html
    head
        title Show Results
    body
        h2 Show Results