2016-11-18 29 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