I get a problem with Express, I try to use the app.post() function but it's not working and I don't know why...
Though I included the bodyParser()...
The problem: Page load without response, no error message. I don't see the console.log()...
app.js :
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, postProvider = require('./postProvider.js')
, http = require('http')
, path = require('path')
, compass = require('node-compass')
, hash = require('./auth').hash;
var app = express();
app.configure(function () {
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(compass());
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.cookieParser('dsqdq edsds'));
app.use(express.session());
});
app.configure('development', function () {
app.use(express.errorHandler());
});
app.get('/admin', function(req, res){
res.redirect('login');
});
app.get('/login', function(req, res){
res.render('login');
});
app.post('/login', function(req, res){
console.log('test');
});
app.get('/', routes.index);
http.createServer(app).listen(app.get('port'), function () {
console.log("Express server listening on port " + app.get('port'));
});
login.jade :
extends layout
block content
h1 Login
h3 "tj" and "foobar"
form(method="post", action="/login")
input(type="text", placeholder="Username", autofocus="true", name="username")
br
input(type="password", placeholder="Password", name="password")
br
input(type="submit", value="login")
I don't find any issue with app.post code !!
One suggestion is that you should end each response send to client , otherwise your server become unresponsive.
Your post request is send to
/test
( since you've usedaction
attribute of your form ), while your express listener is listening to any post requests on/login
.Your code should look like :
If you want this to work!
I copy 'router.post()...' to another js file,and change the route in app.js,it worked!But 'router.post()' method still a warning.sometimes it seems like a warning in webstorm,but it can actually work!