【问题标题】:node.js / jade not able to pass values with form callsnode.js/jade 无法通过表单调用传递值
【发布时间】:2014-02-28 05:05:54
【问题描述】:

我正在尝试让一个“开箱即用”的应用程序与 node.js 0.8.0 一起工作(它是在 0.6.x 中设计的,但我无法让依赖项与它一起工作) .

我已经用我发现的视图更新了大部分错误,但是在通过表单字段传递变量时遇到了麻烦。

登录页面:

extends ../layout

block scripts
  include ../includes/js/jquery
  include ../includes/js/center
  include ../includes/js/focus
  include ../includes/js_form

block content

  include ../includes/logo

  .main

    h1 Welcome to <br> #{company_name} #{company_location}!
    br
    h2 Please sign in / sign out.
    br

    form(action='check_signout', method='post', id='name_form', autocomplete='off')
      p What is your first name?
      input(type='text', id='first_name', name='first_name', size='40', class='required', minlength='1')
      br
      br
      p And your last name?
      input(type='text', id='last_name', name='last_name', size='40', class='required', minlength='2')
      br

      include ../includes/next

  include ../includes/page_number

check_signout(表单提交页面):

extends ../layout

block scripts
  include ../includes/js/jquery
  include ../includes/js/center
  include ../includes/timeout

block content

  include ../includes/logo

  .main

    h2 &nbsp;

    p Hi, #{first_name} #{last_name}!
    p You signed in at #{signin_time}.
    p Would you like to sign out?

    br
    br
    br

    p
      input.button#signout(type="button", value="Yes, I would like to sign out.", onclick="parent.location='confirm_signout'", readonly)

    br
    br

    p
      input.button(type="button", value="No, I would like to sign in.", onclick="parent.location='reason'", readonly)

错误:

Express
500 TypeError: Cannot set property 'first_name' of undefined
at exports.check_signout (/home/ubuntu/lobby/routes/index.js:24:31)
at callbacks (/home/ubuntu/lobby/node_modules/express/lib/router/index.js:165:11)
at param (/home/ubuntu/lobby/node_modules/express/lib/router/index.js:139:11)
at pass (/home/ubuntu/lobby/node_modules/express/lib/router/index.js:146:5)
at Router._dispatch (/home/ubuntu/lobby/node_modules/express/lib/router/index.js:173:5)
at Object.router (/home/ubuntu/lobby/node_modules/express/lib/router/index.js:33:10)
at next (/home/ubuntu/lobby/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at Object.methodOverride [as handle] (/home/ubuntu/lobby/node_modules/express/node_modules/connect/lib/middleware/methodOverride.js:37:5)
at next (/home/ubuntu/lobby/node_modules/express/node_modules/connect/lib/proto.js:190:15)
at store.get.next (/home/ubuntu/lobby/node_modules/express/node_modules/connect/lib/middleware/session.js:302:9)

【问题讨论】:

  • 您直接从您的登录页面发布到另一个 HTML 页面?您必须将 first_name 从服务器传递给 check_signout。
  • 复制快递代码...搜索app.engine('jade'...
  • 我对nodejs一无所知(这比我需要的要困难得多),让我在app.js代码中找到它并更新原始问题。
  • jsfiddle.net/AtXQn 有 app.js,它只是将视图发布到 html 页面。
  • github.com/docusign/Lobby-App 这也是它的 git,如果它有助于描述我的问题。

标签: javascript node.js express pug


【解决方案1】:

您的 html 代码看起来不错,但错误出现在 node.js 代码上。

先贴出node.js代码

显示错误500,所以是“代码错误”,检查node.js中的参数是否编码正确,同时检查post请求处理代码是否正确。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 2015-11-14
    • 2022-01-02
    • 2013-11-04
    相关资源
    最近更新 更多