title: node.js TypeError: path must be absolute or specify root to res.sendFile [failed to parse JSON]
body: <p>[add]
  So my next problem is that when i try adding a new dependence (npm install --save socket.io). The JSON file is also valid. I get this error:
  Failed to parse json</p>
  
  <pre><code>npm ERR! Unexpected string
  npm ERR! File: /Users/John/package.json
  npm ERR! Failed to parse package.json data.
  npm ERR! package.json must be actual JSON, not just JavaScript.
  npm ERR! 
  npm ERR! This is not a bug in npm.
  npm ERR! Tell the package author to fix their package.json file. JSON.parse 
  </code></pre>
  
  <p>So I've been trying to figure out why this error has been returning. All of the files (HTML,JSON,JS) are inside the same folder on my desktop. I'm using node.js and socket.io</p>
  
  <p>This is my JS file:</p>
  
  <pre><code>var app = require('express')();
  var http = require('http').Server(app);
  
  app.get('/', function(req, res){
    res.sendFile('index.html');
  });
  
  http.listen(3000,function(){
      console.log('listening on : 3000');
  });
  </code></pre>
  
  <p>This is what is getting returned:</p>
  
  <pre><code>MacBook-Pro:~ John$ node /Users/John/Desktop/Chatapp/index.js 
  listening on : 3000
  TypeError: path must be absolute or specify root to res.sendFile
      at ServerResponse.sendFile (/Users/John/node_modules/express/lib/response.js:389:11)
      at /Users/John/Desktop/Chatapp/index.js:5:7
      at Layer.handle [as handle_request] (/Users/John/node_modules/express/lib/router/layer.js:76:5)
      at next (/Users/John/node_modules/express/lib/router/route.js:100:13)
      at Route.dispatch (/Users/John/node_modules/express/lib/router/route.js:81:3)
      at Layer.handle [as handle_request] (/Users/John/node_modules/express/lib/router/layer.js:76:5)
      at /Users/John/node_modules/express/lib/router/index.js:234:24
      at Function.proto.process_params (/Users/John/node_modules/express/lib/router/index.js:312:12)
      at /Users/John/node_modules/express/lib/router/index.js:228:12
      at Function.match_layer (/Users/John/node_modules/express/lib/router/index.js:295:3)
  TypeError: path must be absolute or specify root to res.sendFile
      at ServerResponse.sendFile (/Users/John/node_modules/express/lib/response.js:389:11)
      at /Users/John/Desktop/Chatapp/index.js:5:7
      at Layer.handle [as handle_request] (/Users/John/node_modules/express/lib/router/layer.js:76:5)
      at next (/Users/John/node_modules/express/lib/router/route.js:100:13)
      at Route.dispatch (/Users/John/node_modules/express/lib/router/route.js:81:3)
      at Layer.handle [as handle_request] (/Users/John/node_modules/express/lib/router/layer.js:76:5)
      at /Users/John/node_modules/express/lib/router/index.js:234:24
      at Function.proto.process_params (/Users/John/node_modules/express/lib/router/index.js:312:12)
      at /Users/John/node_modules/express/lib/router/index.js:228:12
      at Function.match_layer (/Users/John/node_modules/express/lib/router/index.js:295:3)
  </code></pre>