繁体   English   中英

带有角度资源的nodejs expressjs sendFile

[英]nodejs expressjs sendFile with angular resource

我有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 Service返回的内容是。这时我看到我的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代码大声笑。 好笑但不帮我哈哈

选项是您要从中提供文件的目录。 假设您的文件夹结构如下所示:

| 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'});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM