Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Javascript Express.js:node.js、Express.js和form post中的jade,不´;不要显示第二页_Javascript_Jquery_Node.js_Express - Fatal编程技术网

Javascript Express.js:node.js、Express.js和form post中的jade,不´;不要显示第二页

Javascript Express.js:node.js、Express.js和form post中的jade,不´;不要显示第二页,javascript,jquery,node.js,express,Javascript,Jquery,Node.js,Express,我是node和express的新手,我做了一个小应用程序,但它不起作用。我确实在第1页发布,但应用程序没有显示第2页。结构和代码为: / /controller/controllers.js /node_modules/express /jade /mongoose /view/index1.jade /index2.jade /layout.jade app.js package.json app.js /* serve

我是node和express的新手,我做了一个小应用程序,但它不起作用。我确实在第1页发布,但应用程序没有显示第2页。结构和代码为:

/
/controller/controllers.js
/node_modules/express
             /jade
             /mongoose
/view/index1.jade
     /index2.jade
     /layout.jade
app.js
package.json
app.js

/* server */
var express = require('express')    
  , routes = require('./routes')
  , fs = require('fs');

//Create server
var app = express.createServer();

//Use controller
var controllers_path = __dirname + '/controllers'
    ,controller_files = fs.readdirSync(controllers_path);
    controller_files.forEach(function (file) {
        require(controllers_path+'/'+file)(app);
});

//Jade configuration
app.configure(function() {
    app.set('view options', { layout: false });
    app.use(express.static(__dirname + ''));
});

app.listen(3001);
console.log("listening on port %d", app.address().port);
controller.js

module.exports = function(app, auth){

    // Get
    app.get('/test1', function(req, res){
        res.render('index.jade', {});
    });

    // Post
    app.get('/test2', function(req, res){
        res.render('index2.jade', {});
    });

};
翡翠索引

extends layout
block content   
    form(method="post", action="/test2")
    p
    input(type="submit")
翡翠

extends layout
block content
    p Page 2
翡翠的布局

h1 Test layout
block content

谢谢大家!

问题是您没有用于
/test2
的POST处理程序。在HTML中,您指定的是
method=“POST”
,但在控制器中,您只处理GET方法

您要将其更改为:

// Post
app.post('/test2', function(req, res){
    res.render('index2.jade', {});
});
顺便说一句,如果要处理所有请求类型,可以使用app.all,然后根据方法类型决定要执行的操作:

app.all('/test2', function(req, res){
    if(req.method==='GET'){
        // one response for GET requests
    } if(req.method==='POST'){
        // another response for POST requests
    } else {
        // catch all...PUT, DELETE, etc.
    }
});

你没有处理帖子的路径…我已经更改了,当按下按钮时,应用程序什么也不做。我在app.post中放置了一个日志。。。。。并通过控制台显示。您是说POST处理程序的
console.log
是否发生在服务器上?对不起,不显示日志,不在app.POST('/test2',function(req,res)中输入,尝试在记录器中链接,看看发生了什么。
app.use(express.logger('dev'))它没有显示任何内容,你的意思是?它必须至少记录一个GET for
/test1
,对吗?