2016-11-18 108 views
0

我目前正在爲我的節點JS應用程序創建一個菜單,我還沒有想出如何不使用瀏覽器導航欄進行服務器請求。節點JS服務器請求使用按鈕

我的目錄結構如下。

/application/nodeserver.js 

      /screens/index.js 
      /screens/other.js 
      /screens/notfound.js 

我nodeserver.js如下

// main 

var gv_http = null; 
var gv_filestream = null; 
var gv_server = null; 

// screens 

var gv_index = null; 
var gv_other = null; 
var gv_notfound = null; 

// set variables 

gv_http = require('http'); 
gv_filestream = require('fs'); 
gv_server = gv_http.createServer(); 

gv_index = require('./screens/index'); 
gv_other = require('./screens/other'); 
gv_notfound = require('./screens/notfound'); 

// server 

gv_server.on('request', function(request, response) { 

    switch(request.url) { 

     case '/': 
     case '/index': 
     gv_index.gui(response); 
     break; 

     case '/other': 
     gv_other.gui(response); 
     break; 

     default: 
     gv_notfound.gui(response); 
     break; 

    } 

}); 

gv_server.listen(90); 

該位所有工作正常,但唯一的辦法,我可以觸發我的case語句是通過將內容輸入,它會彈出我的javascript屏幕上的瀏覽器。

一個屏幕的index.js

var gv_mainmenu = null; 

gv_mainmenu = require('./elements/mainmenu'); 

var gui = function(response) { 

    response.writeHead(200, {'Content-Type':'text/html'}); 

    response.write(
     '<html>' + 
     '<body>' 
    ); 

    response.write(
     '<button id="butt_index">' + 
     ' index' + 
     '</button>' + 
     '<button id="butt_other">' + 
     ' other' + 
     '</button>' 
    ); 

    response.write(
     '<h4>index</h4>' 
    ); 

    response.write(
     '</body>' + 
     '</html>' 
    ); 

    response.end(); 

} 

function sendrequest() { 

    console.log("request sent"); 

} 

module.exports.gui = gui; 

是否有可能模仿這種使用HTML按鈕中的一個?我只在Express等框架中看到過這種情況,但我仍然不想在學習時使用其中的一種。

PS

我知道我的代碼看起來怪異的JavaScript專家,但我跟我一起工作的人的編碼標準,我們用的Genero主要代碼,所以我儘量保持他們熟悉的和我。

回答

1

最簡單的解決方案是將錨標籤添加到您的按鈕,以便它們鏈接到您的新頁面。

'<a href="/index"><button id="butt_index">' + 
    ' index' + 
    '</button></a>' 
+1

這工作完美,很好的簡單解決方案 – Trent