2014-02-28 37 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