2014-01-14 3 views
1

Я новичок в узле, и мне захотелось попробовать простую app.post, но я не могу заставить его работать. Ниже приведены мои коды app.js и index.jade. Я пытаюсь заставить свое приложение распечатать «привет» на консоли, когда я ввожу данные в форму и нажимаю кнопку «Отправить», но этого не происходит.app.post not working node.js

**app.js** 

/**enter code here 
* Module dependencies. 
*/ 

var express = require('express'); 

var routes = require('./routes'); 

var user = require('./routes/user'); 

var http = require('http'); 

var path = require('path'); 

var app = express.createServer(); 

app.use(express.bodyParser()); 

// all environments 

app.set('port', process.env.PORT || 3000); 

app.set('views', path.join(__dirname, 'views')); 

app.set('view engine', 'jade'); 

app.use(express.favicon()); 

app.use(express.logger('dev')); 

app.use(express.json()); 

app.use(express.urlencoded()); 

app.use(express.methodOverride()); 

app.use(app.router); 

app.use(express.static(path.join(__dirname, 'public'))); 

// development only 
if ('development' == app.get('env')) { 
    app.use(express.errorHandler()); 
} 

app.get('/', routes.index); 

app.get('/users', user.list); 

app.get('/george', function(req,res){ 
    res.send('This is the random george page'); 
    console.log("george"); 
}); 

app.get('/second', function(req,res){ 
    res.render('secondpage'); 
}); 

app.get('/act', function(request, response){ 
    console.log("hello"); 
}); 

app.post('/', function(request, response){ 
    console.log("hi"); 
}); 

app.listen(3000); 
console.log("Express server listening on port 3000"); 





**index.jade** 

extends layout 

block content 

    h1: a(href = 'second') George 

    p Welcome to your demosite George 


    form(method="post", action="/", name="act") 

    p 

    |Username 

    input(type="text", name="user") 

    p 

    |Password 

    input(type="text", name="pass") 

    p 

    input(type="submit", value="Submit") 
+0

Что касается вопроса Питера Лиона, браузер даже представляет форму? Например, он просто ударил другого обработчика маршрута или он никогда не возвращается на сервер? – juanpaco

+0

он никогда не возвращался к серверу. – user2588332

ответ

3

Первое предположение все в файле нефрита после form тега нужно еще 2 ведущих пространства отступа, чтобы убедиться, что input теги в конечном итоге вложенным внутри form тега в HTML. Ваш экспресс-код JS выглядит так, как будто он должен работать тогда.

+0

Спасибо большое! Это решило проблему – user2588332