angularjs - How to use res.sendFile and res.json together -


when home page loads, call done / , , simultaneously ajax call being done /courses.

a json response /courses being used in html returned / call.

but error shown below occuring in implementation.
error:cannot set headers after sent.

i guess due simultaneous call / , and ajax call /courses.

what solution this, if error due think?

please ask, if more code required.
necessary code being shown below:

nodejs snippet

var express        = require('express'); var router         = express.router(); var db1  = require('../models/coursedetails.js');  /* home page. */ router.get('/', function(req, res, next) {   res.sendfile('index.html'); });  router.get('/courses',function(req,res){     db1.find({},function(err,data){     if(err){         console.log("i in trouble nodejs")     }else{         console.log("coming data courses:");         console.log(data[0]);         console.log("have complete data...................................");         res.json(data);     }      })     res.json(data) });  module.exports = router; 

factory snippet(where ajax call being initiated)

.factory('courses',function($http){ return{     list:function(callback){         $http({             method:'get',             url:'/courses'            })         .success(callback)         .error(function(error){             console.log('i in error of ajax,allcourses')         })      } }) 

the error getting express error happens when code setting headers on response object after response has finished. in case calling res.json() set content-type header, , calling twice in /courses endpoint. happening after if/else block, calling res.json() again.

refactor code this:

router.get('/courses',function(req,res){     db1.find({},function(err,data){         if(err){             console.log("i in trouble nodejs")             res.status(500).json({                 message : 'error getting courses'             });         } else {             console.log("coming data courses:");             console.log(data[0]);             console.log("have complete data...................................");             res.status(200).json(data);         }     }); }); 

i added error handling in case of error coming database query 500 status code, , 200 ok json data if database query successful.


Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -