Node/Express 表单处理

Node/Express Form handling

我正在按照教程使用 jade 模板引擎构建 node/express 应用程序,但在尝试提交表单时出现 404 错误。对于我的路由,我有行 app.post('/sign_up', sign_up); 这给了我一个错误。 sign_up 变量是在上面使用这一行 var sign_up = require('./routes/sign_up'); 声明的。

奇怪的是,如果我在 sign_up 变量的位置注册一个回调函数,那么我就可以很好地检索数据,这是我使用这段代码所做的 app.post('/sign_up', function(req, res){ console.log(req.body); });.

在我的路线文件夹中,我有 sign_up.js 文件,它输出一行相当简单的文本。我试过改变功能

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('You signed up');
});
module.exports = router;

下面是我的form.jade文件

的内容
    extends layout
    block content
    h1= title
    form(name="sign-up", action="/sign_up", method="post")
        div
            label Username: 
            input(type="text", name="username")
        div
            label Password: 
            input(type="password", name="password")
        div
            input(type="submit", value="Sign Up")

如果您使用 sign_up.js 来处理路由,那么您应该在那里定义 post 函数。尝试在 sign_up.js

中添加这个
/* POST*/
router.post('/sign_up', function(req, res, next) {
  res.send('You signed up');
});