8

Express で問題が発生しました。app.post() 関数を使用しようとしましたが、機能せず、理由がわかりません...

bodyParser() を含めましたが...

問題: ページの読み込みが応答せず、エラー メッセージが表示されない。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")
4

4 に答える 4

3

app.post コードに問題はありません!!

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

1 つの提案は、 client に送信される各応答を終了することです。そうしないと、サーバーが応答しなくなります。

于 2013-02-09T09:59:13.860 に答える
0

あなたの投稿リクエストはに送信されます/test(フォームの属性を使用したactionため)、エクスプレスリスナーは上の投稿リクエストをリッスンしています/login

コードは次のようになります。

block content
  h1 Login
  h3 "tj" and "foobar"
  form(method="post", action="/login")

これを機能させたい場合は!

于 2013-02-09T09:49:28.063 に答える