【发布时间】:2017-06-06 07:56:53
【问题描述】:
我有我的 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'));
之后,我问自己“我用 $resource 在 Angular 服务中返回了什么。而此时我看到了我的 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 代码哈哈。好笑但帮不了我哈哈
【问题讨论】:
-
你配置路由器来处理/login吗?
-
“进程/登录”是什么意思?是的,注意 router.get('/'.... 但它真的是 /login,我的 console.log("Hi there"); 当我点击按钮时显示。所以它进入 router.get
-
如果是你的要求,我的 server.js 上有这个:app.use('/login', login);
-
您的 login.html 在 /public/views 但您发送的是 ../public/login.html???
-
哦,是的,谢谢。但是修改后就不行了……
标签: javascript angularjs node.js express