我有我的index.html,当我点击一个按钮时,它会调用一个使用$ resource的角度服务。
var serviceRest = $resource(URL_API, null,
{
"connect" : { method: "GET", url: "http://localhost/login"}
});
然后在我的expressJS路线中,我有这个:
router.get('/',function(req,res){
console.log("Hi there");
res.sendFile('../public/views/login.html', {root: __dirname});
});
但它什么都没做。没有任何事情发生,但我的控制台日志显示所以我的sendFile可能是假的...我留在我的index.html。
| -- Agenda
| -- public
| -- views
| -- login.html
| -- controllers
| -- routes.js
我的路由器文件位于./controllers
,我的login.html位于./public/views
编辑:
好的,问题不是路径问题。但是,在我尝试的所有解决方案中,只有一个给了我一个好结果。
res.sendFile(path.join(__dirname, '../public/views/login.html'));
在那之后,我问自己"我在Angular Service中使用$ resource返回了什么。就在这时,我看到了connect()
函数:
var serviceRest = $resource(URL_API, null,
{
"connect" : { method: "GET", url: "http://localhost/login"}
});
return {
connect: function() {
console.log("connect");
console.log(serviceRest.connect());
return serviceRest.connect();
}
}
这个console.log(serviceRest.connect());
在浏览器控制台中显示了一个Promise。这是一个巨大的数组,每个元素有一个字符,包含我的login.html代码lol。有趣但不帮我哈哈
答案 0 :(得分:1)
root 选项是您要从中提供文件的目录。假设您的文件夹结构如下所示:
| yourApp
| -- public/
| -- views/
|-- login.html
| -- controllers/
| -- routes.js
尝试使用 yourApp
设置根目录res.sendFile('public/views/login.html', {root: '../<root folder name>'});
将上面的“根文件夹名称”替换为“ public ”文件夹的父目录名称。 考虑上面的文件夹结构:
res.sendFile('public/views/login.html', {root: '../yourApp'});