app.post()无法与Express一起使用 [英] app.post() not working with Express

查看:317
本文介绍了app.post()无法与Express一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我遇到了Express的问题,我尝试使用app.post()函数,但是它不起作用,我也不知道为什么...

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...

尽管我包括了bodyParser()...

Though I included the bodyParser()...

问题:页面加载无响应,没有错误消息.我没有看到console.log()...

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:

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")

推荐答案

app.post代码未发现任何问题!

I don't find any issue with app.post code !!

app.post('/login', function(req, res){
    console.log('test');
    res.end(); // end the response
});

一个建议是,您应该结束每个发送给客户端的响应,否则您的服务器将无响应.

One suggestion is that you should end each response send to client , otherwise your server become unresponsive.

这篇关于app.post()无法与Express一起使用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆