2014-02-28 36 views
0

我试图让一个“开箱即用”的应用程序与node.js 0.8.0一起工作(它是在0.6.x中设计的但我无法得到依赖关系来处理)。node.js/jade无法通过窗体调用值传递

我已经更新了大部分的错误与我发现的意见,但我有麻烦通过表单域传递变量。

登录页面:

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) 
+0

您直接从您的登录页面发布到其他HTML页面?您必须将first_name传递给服务器的check_signout。 –

+0

复制快速代码...搜索app.engine('jade'... –

+0

我对nodejs一无所知(使它比我需要的更困难),让我在app.js中找到它代码并更新原始问题 – Andrew

回答

0

HTML代码看起来不错,但错误是在节点。 js代码。

先发布node.js代码。

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

+0

http://jsfiddle.net/5qzVC/有index.js它引用。 – Andrew