2013-04-02 69 views
0

我使用Angular Seed project来构建一个简单的网站。当我启动节点服务器并在localhost:8000上输入url时,它提供了目录内容。我希望它能够提供index.html文件,但是希望在没有重定向的情况下执行此操作。Angular Seed项目,默认设置index.html

我相信我需要修改以下函数,我应该更改isDirectory检查的代码,但我不确定这是否是正确的方法。任何建议,将不胜感激。

StaticServlet.prototype.handleRequest = function(req, res) { 
    var self = this; 
    var path = ('./' + req.url.pathname).replace('//','/').replace(/%(..)/g, function(match, hex){ 
     return String.fromCharCode(parseInt(hex, 16)); 
    }); 
    var parts = path.split('/'); 
    if (parts[parts.length-1].charAt(0) === '.') 
     return self.sendForbidden_(req, res, path); 
    fs.stat(path, function(err, stat) { 
     if (err) 
      return self.sendMissing_(req, res, path); 
     if (stat.isDirectory()) 
      return self.sendDirectory_(req, res, path); 
     return self.sendFile_(req, res, path); 
    }); 
} 

更新#1

我有两个截图澄清。第一个图像是我目前得到的,第二个图像是我想要的。

我会得到什么 What I Get


我想要的东西 What I Want


更新#2

使用下面的Restify链接,我发现了下面的例子,这正是我所需要的。

var server = restify.createServer(); 
var io = socketio.listen(server); 

server.get('/', function indexHTML(req, res, next) { 
    fs.readFile(__dirname + '/index.html', function (err, data) { 
     if (err) { 
      next(err); 
      return; 
     } 

     res.setHeader('Content-Type', 'text/html'); 
     res.writeHead(200); 
     res.end(data); 
     next(); 
}); 


io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
      console.log(data); 
    }); 
}); 

server.listen(8080, function() { 
    console.log('socket.io server listening at %s', server.url); 
}); 
+0

这也应该工作到服务器静态html:server.get( “/”,restify.serveStatic({ 目录:'./public', 默认:'index.html' })); – r03

回答

2

angular-seed项目是客户端的起点,但不是真正的服务器端。它们包括一个简单的无需依赖的网络服务器节点脚本。这样你就不需要npm或其他模块。

对于服务器端,您可以使用节点connect/express或任何其他Web服务器/语言。 你只需要制作其他服务并提供一些静态html。

既然你已经安装节点restify可能是东西给你。

更新:我创建了一个基本的样品使用角种子用的RESTify:
https://github.com/roelandmoors/restify-angular-seed

+0

很好的答案,你甚至提供了一个链接!我甚至找到了使用Socket.IO需要做的具体示例。非常感谢。 – jamesamuir

相关问题