2016-10-13 2 views
-1

私のコンソールは、次の警告を表示し続けます。これはapp.jsやその他のルートファイルからのものです。node.jsサーバーで次の警告を表示し続ける

エラーはキャッシュの処理のために発生しているようです。ユーザーがログアウトするとキャッシュを処理します。

Error: Can't set headers after they are sent. 
    at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:344:11) 
    at ServerResponse.header (/home/ved/Dropbox/JAVA/eBay/test/node_modules/express/lib/response.js:718:10) 
    at ServerResponse.send (/home/ved/Dropbox/JAVA/eBay/test/node_modules/express/lib/response.js:163:12) 
    at done (/home/ved/Dropbox/JAVA/eBay/test/node_modules/express/lib/response.js:957:10) 
    at View.exports.renderFile [as engine] (/home/ved/Dropbox/JAVA/eBay/test/node_modules/ejs/lib/ejs.js:363:10) 
    at View.render (/home/ved/Dropbox/JAVA/eBay/test/node_modules/express/lib/view.js:126:8) 
    at tryRender (/home/ved/Dropbox/JAVA/eBay/test/node_modules/express/lib/application.js:639:10) 
    at EventEmitter.render (/home/ved/Dropbox/JAVA/eBay/test/node_modules/express/lib/application.js:591:3) 
    at ServerResponse.render (/home/ved/Dropbox/JAVA/eBay/test/node_modules/express/lib/response.js:961:7) 
    at /home/ved/Dropbox/JAVA/eBay/test/app.js:159:7 
GET /fonts/glyphicons-halflings-regular.woff 404 1.673 ms - 968 
GET /fonts/glyphicons-halflings-regular.ttf 404 1.738 ms - 968 
POST /viewProductPage - - ms - - 

app.js

var express  = require('express'); 
var path   = require('path'); 
var favicon  = require('serve-favicon'); 
var logger  = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 


//DEFINING EXTERNAL DEPENDENCY TO ENABLE SESSIONS IN THE APPLICATION 
var session = require('client-sessions'); 


//DEFINING THE BASE ROUTE 
var routes = require('./routes/index'); 

//DEFINING THE ROUTE TO GET THE SYSTEM USERS 
var users = require('./routes/users'); 


//DEFINING THE ROUTE TO ACCESS sell.js 
//sell.js HANDLES ALL THE ITEMS POSTED 
//INTERACTS WITH THE DATABASE FOR THE SAME 
var sell = require('./routes/sell'); 


//ROUTES TO getUserData.js 
//DEFINED AS A BASE ROUTE TO ACCESS SESSION FOR ANY USE 
var getUserData = require('./routes/getUserData'); 





var productsRetriever = require('./routes/productsRetriever'); 


//DEFINING THE DEPENDENCY TO ACCESS LOGIN CONTROLS FOR THE SYSTEM 
//USER LOGIN AND MOST IMPORTANTLY ASSIGNING A SESSION TO THAT USER IS HANDLED BY login.js 
//getUserData.js RETRIEVES THE SESSION OF A USER INITIATED IN login.js 
var login = require('./routes/login'); 





var productDetail = require('./routes/productDetail'); 



//DEFINING THE DEPENDENCY TO ACCESS register.js 
//register.js HANDLES ALL THE USER REGISTRATION PATHS AS WELL AS FUNCTIONS 
var register = require('./routes/register'); 



//INITIATING AN INSTANCE OF express js IN OUR APPLICATION 
//ASSIGNING IT TO A VARIABLE APP 
var app  = express(); 



// all environments 
//configure the sessions with our application 
app.use(session({ 
    cookieName : 'session', 
    secret  : 'cmpe273_ebay_app_fall_2016', 
    duration  : 30 * 60 * 1000, //setting the time for active session 
    activeDuration: 5 * 60 * 1000 // setting time for the session to be active when the window is open // 5 minutes set currently 
})); 





// view engine setup 
//SETS BASE PATH FOR ALL THE FILES IN THE VIEW 
app.set('views', path.join(__dirname, 'views')); 
//ASSIGNING THE ejs ENGINE TO ALL THE FILES WITHIN VIEWS DIRECTORY 
app.set('view engine', 'ejs'); 

// uncomment after placing your favicon in /public 
app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
app.use(logger('dev')); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser()); 
app.use(express.static(path.join(__dirname, 'public'))); 


//GETS THE PATH WHEN A USER FIRST VISITS OUR APPLICATION 
app.get('/', routes); 


app.get('/users', users); 

app.get('/login', login.login); 
app.post('/checklogin', login.checklogin); 
app.get('/getAllUsers', login.getAllUsers); 


app.get('/sell', sell.sell); 
app.post('/addSellItem', sell.addSellItem); 


//app.post('/checklogin', login.checklogin); 
app.get('/homepage',login.redirectToHomepage); 





app.post('/logout',login.logout); 



app.post('/getUserInfo', getUserData.getUserData); 

app.get('/viewProduct',productDetail.getProductPage); 

app.post('/productsRetriever', productsRetriever.getProducts); 


app.post('/viewProductPage', productDetail.getProductPageDetails); 

app.get('/register', register.register); 
app.post('/registerdone', register.registerdone); 
app.get('/getAllRegisteredUsers', register.getAllRegisteredUsers); 





// catch 404 and forward to error handler 
app.use(function(req, res, next) { 
    var err        = new Error('Not Found'); 
    err.status       = 404; 
    next(err); 
}); 

// error handlers 

// development error handler 
// will print stacktrace 
if (app.get('env')      === 'development') { 
    app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
     message       : err.message, 
     error        : err 
    }); 
    }); 
} 


// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
    message        : err.message, 
    error        : {} 
    }); 
}); 


module.exports       = app; 
+0

この質問とはどのように違うのですかhttp://stackoverflow.com/q/7042340/744534 – Thaadikkaaran

+0

このエラーが発生しているコールはありますか? – abdulbarik

+0

@abdulbarik私はそれを理解することができません。 – jack

答えて

0

また、これは私に起こりました。

私のルートでいくつかの操作を行っていてユーザーに応答を送信していたが、そのエラーが発生してエラー処理ミドルウェア(app.jsの下部)、それはエラー応答を送信していました。

リクエストがAPIルートの早い段階で既に応答されているため、このエラーメッセージはログに記録されます。エラーの内容を確認してください。

エラーハンドラにconsole.log()を入れてトレースを確認してください。

関連する問題