发送指定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'); });