FAQ
Hi i am trying to include angular to my index.html but i get the
error: path must be absolute or specify root to res.sendFile.

index.html
<!DOCTYPE html>
<html ng-app="MainApp">
<head>
<title></title>

<script type="text/javascript" src="./libs/angular/angular.js"></script>
<script type="text/javascript" src="core.js"></script>
</head>
<body ng-controller="ProdServCtrl">

</body>
</html>

server.js
     // set up
======================================================================
     var express = require('express');
     var app = express(); // create our
app w/ express
     var mongoose = require('mongoose'); // mongoose for
mongodb
     var port = process.env.PORT || 8080; // set the port
     var database = require('./config/database'); // load the
database config
         var morgan = require('morgan'); // log requests to the
console (express4)
     var bodyParser = require('body-parser'); // pull information from
HTML POST (express4)
     var methodOverride = require('method-override'); // simulate DELETE and
PUT (express4)

     // configuration
===============================================================
     mongoose.connect(database.url); // connect to mongoDB database on
modulus.io

     app.use(express.static(__dirname + '/public')); // set
the static files location /public/img will be /img for users
     app.use(morgan('dev')); // log
every request to the console
     app.use(bodyParser.urlencoded({'extended':'true'})); //
parse application/x-www-form-urlencoded
     app.use(bodyParser.json()); //
parse application/json
     app.use(bodyParser.json({ type: 'application/vnd.api+json' })); //
parse application/vnd.api+json as json
     app.use(methodOverride());

     // routes
======================================================================
     require('./app/routes.js')(app);

     //api route
     app.get('*', function(req, res){
     res.sendFile('./public/index.html')
     })

     // listen (start app with node server.js)
======================================
     app.listen(port, function(){
     console.log("App listening on port " + port);
     });

Please help.
Thanks

--
Job board: http://jobs.nodejs.org/
New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups "nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscribe@googlegroups.com.
To post to this group, send email to nodejs@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/46c05253-1e93-430b-b5b3-a16dc013840a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Search Discussions

  • Danilo Sampaio at Nov 29, 2014 at 4:55 pm
    The lib directory should inside public directory, and remove the '.' at the
    beginning.

    Em sáb, 29 de nov de 2014 03:35, Christian Nwamba <nwambachristian@gmail.com>
    escreveu:
    Hi i am trying to include angular to my index.html but i get the
    error: path must be absolute or specify root to res.sendFile.

    index.html
    <!DOCTYPE html>
    <html ng-app="MainApp">
    <head>
    <title></title>

    <script type="text/javascript" src="./libs/angular/angular.js"></script>
    <script type="text/javascript" src="core.js"></script>
    </head>
    <body ng-controller="ProdServCtrl">

    </body>
    </html>

    server.js
    // set up
    ======================================================================
    var express = require('express');
    var app = express(); // create our
    app w/ express
    var mongoose = require('mongoose'); // mongoose
    for mongodb
    var port = process.env.PORT || 8080; // set the port
    var database = require('./config/database'); // load the
    database config
    var morgan = require('morgan'); // log requests to the
    console (express4)
    var bodyParser = require('body-parser'); // pull information from
    HTML POST (express4)
    var methodOverride = require('method-override'); // simulate DELETE
    and PUT (express4)

    // configuration
    ===============================================================
    mongoose.connect(database.url); // connect to mongoDB database on
    modulus.io

    app.use(express.static(__dirname + '/public')); // set
    the static files location /public/img will be /img for users
    app.use(morgan('dev')); // log
    every request to the console
    app.use(bodyParser.urlencoded({'extended':'true'})); //
    parse application/x-www-form-urlencoded
    app.use(bodyParser.json()); //
    parse application/json
    app.use(bodyParser.json({ type: 'application/vnd.api+json' })); //
    parse application/vnd.api+json as json
    app.use(methodOverride());

    // routes
    ======================================================================
    require('./app/routes.js')(app);

    //api route
    app.get('*', function(req, res){
    res.sendFile('./public/index.html')
    })

    // listen (start app with node server.js)
    ======================================
    app.listen(port, function(){
    console.log("App listening on port " + port);
    });

    Please help.
    Thanks

    --
    Job board: http://jobs.nodejs.org/
    New group rules:
    https://gist.github.com/othiym23/9886289#file-moderation-policy-md
    Old group rules:
    https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
    ---
    You received this message because you are subscribed to the Google Groups
    "nodejs" group.
    To unsubscribe from this group and stop receiving emails from it, send an
    email to nodejs+unsubscribe@googlegroups.com.
    To post to this group, send email to nodejs@googlegroups.com.
    To view this discussion on the web visit
    https://groups.google.com/d/msgid/nodejs/46c05253-1e93-430b-b5b3-a16dc013840a%40googlegroups.com
    <https://groups.google.com/d/msgid/nodejs/46c05253-1e93-430b-b5b3-a16dc013840a%40googlegroups.com?utm_medium=email&utm_source=footer>
    .
    For more options, visit https://groups.google.com/d/optout.
    --
    Job board: http://jobs.nodejs.org/
    New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md
    Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
    ---
    You received this message because you are subscribed to the Google Groups "nodejs" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscribe@googlegroups.com.
    To post to this group, send email to nodejs@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/CAFsdJu3zvCfiYw8QJt%3DPyy8GM6u-%3D_8ux_mLit3MwmN%3D7uU3xg%40mail.gmail.com.
    For more options, visit https://groups.google.com/d/optout.
  • Ryan Schmidt at Nov 29, 2014 at 4:56 pm

    On Nov 28, 2014, at 5:28 PM, Christian Nwamba wrote:

    Hi i am trying to include angular to my index.html but i get the error: path must be absolute or specify root to res.sendFile.
    This is an express-specific question. You may get better advice about express questions on the express-js google group instead of on this general nodejs google group.
    app.get('*', function(req, res){
    res.sendFile('./public/index.html')
    })
    This is the res.sendFile it's talking about. As it says in the error message, and in the express documentation...

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

    "Unless the root option is set in the options object, path must be an absolute path of the file."

    So either make it absolute:

          res.sendFile(path.join(__dirname, 'public', index.html'))

    Or use the options object to specify the root:

          res.sendFile('index.html', {root: path.join(__dirname, 'public')})

    --
    Job board: http://jobs.nodejs.org/
    New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md
    Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
    ---
    You received this message because you are subscribed to the Google Groups "nodejs" group.
    To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+unsubscribe@googlegroups.com.
    To post to this group, send email to nodejs@googlegroups.com.
    To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/170A3AE8-7F87-4537-95C7-DF997EFC4221%40ryandesign.com.
    For more options, visit https://groups.google.com/d/optout.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupnodejs @
categoriesnodejs
postedNov 29, '14 at 6:35a
activeNov 29, '14 at 4:56p
posts3
users3
websitenodejs.org
irc#node.js

People

Translate

site design / logo © 2022 Grokbase