2015-07-19 48 views
0

当我读app.js中有两个href链接(登录&注册),它应该重定向到提供的位置,但它不会发生时,我点击它们的“login.html”? ? 在这里不用代码简单导航使用节点js没有任何框架

var http = require('http'); 
    var fs = require('fs');  
http.createServer(function (req, res) { 

    fs.readFile('./login.html' , function(err, data){ 


if(err){ 
    console.log(err); 
} 


console.log("sanjay"); 


res.end(data); 
}); 



}).listen(3000); 
console.log('Server running at http://<workspace-url>/'); 

“的login.html”

<html> 
<head> 

</head> 
<body> 


<ul> 

<li><a href="index.html" >login</a></li> 
<li><a href="index.html">signup</a></li> 

</ul> 



</body> 




</html> 
+1

请提供更多的信息。你的服务器是做什么的?什么网址?你在控制台中看到什么? – SLaks

+0

我更新了代码,能够阅读该文件,但无法重定向到index.html当我点击登录/注册..... –

回答

0

你的app.js文件只能提供login.html,它不处理index.html的请求。

可以修改app.js有点像这样:

http.createServer(function (req, res) { 
    if (req.url === '/index.html') { 
    fs.createReadStream(__dirname + '/index.html').pipe(res) 
    } else { 
    fs.createReadStream(__dirname + '/login.html').pipe(res) 
    } 
}).listen(3000) 
+0

谢谢它的工作:) –

+0

任何时间!另外,随着事情变得越来越大,您可能需要使用帮助处理这些路线的模组。 我更喜欢使用[patterns](https://github.com/watson/patterns#example-a-complete-http-router)获取已知路线和[ecstatic](https://github.com/jfhbrook/node - 资产)。 – Jekrb

+0

当然,在刚开始这些可能会帮助我实现谢谢:) –

0

一个服务器的NodeJS不会自动提供任何文件。你有代码来提供login.html,但你没有任何代码来提供任何其他文件。因此,在编写服务器时,无论请求什么URL,所有请求都会提供login.html。

如果你想坚持使用普通的http服务器,那么你必须查看req参数来查看请求的路径是什么,然后提供一个合适的文件。但是,像Express这样的简单框架使得用一行代码服务多个静态HTML文件变得更简单。

请求对象是documented here,如果您想查看请求的网址并提供相应的文件,您可以查看req.url

我个人建议您使用Express framework,您可以使用express.static()功能通过一行代码提供静态HTML文件。

+0

我完全理解:)感谢您的信息 –