Javascript Express.js:node.js、Express.js和form post中的jade,不´;不要显示第二页
我是node和express的新手,我做了一个小应用程序,但它不起作用。我确实在第1页发布,但应用程序没有显示第2页。结构和代码为: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
/
/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
,对吗?