发送指定URL的静态文件

我目前正在使用parsing来部署我的networking应用程序。 我正在使用Express将URL路由到适当的内容。

目前我试图为以下url提供index.html;

mystackoverflowapp.parseapp.com/hi 

在我的云代码中,我有以下请求处理程序

 app.get('/hi', function(req, res){ res.sendFile('index.html'); }); 

根据parsing文档,默认目录是公共目录。 不幸的是这个请求处理程序不工作。 当我去我的stackoverflow.parseapp.com我得到一个500错误,“内部服务器错误”。

我遵循文档中概述的相同目录结构,并尝试在每个目录中都有index.html文件。

如果我尝试

 res.send('This works!') 

对于相同的路线,我得到了预期的回应,

 "This works!". 

任何想法,我在做什么错? 另外,什么是最好的方式来获得更好的debugging呢? 一个500错误并不真正透露太多。

你可能有一个错误的path。 看看错误尝试这个:

  res.sendFile('index.html', function (err) { if (err) { console.log(err); } else { console.log('File sent!'); } }); 

http://expressjs.com/4x/api.html#res.sendFile

除非选项对象中设置了根选项,否则path必须是文件的绝对path。

更新1:我试过这个:

 app.get('/test', function(req,res) { try { res.sendFile('test.html'); } catch (err) { res.send('ERROR ' + err); } }); 

它产生:

ERROR TypeError:Object [object Object]没有方法'sendFile'

然后我偶然发现: 如何在Parse.com上手动提供文件? 。 相关报价:

似乎Parse运行一个自定义的节点模块子集。 他们已经擦除了所有的文件系统方法。 在Express API上没有sendFile(),在fs模块上没有readFile()…

更新2:

parsing为您的应用程序设置一个静态文件处理程序,所以试试这个:

 app.get('/hi', function(req, res){ res.redirect('/index.html'); });