server.js 노드로 Express 서버를 시작하려고 할 때이 오류가 발생하고 원인을 파악할 수 없습니다. 내 앱을 Express 4.0으로 업데이트했다고 생각하지만 누군가 여기에서 내 오류를 지적 할 수 있습니다.
/home/trevor.panhorst/public_html/server/routes/api.js:236
req.session = null;
^
TypeError: Cannot set property 'session' of undefined
at Object.exports.logout (/home/trevor.panhorst/public_html/server/routes/api.js:236:17)
at Object.<anonymous> (/home/trevor.panhorst/public_html/server/server.js:96:34)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
관련 코드는 다음과 같습니다.
server.js에서 ... 일부 종속성
var express = require('express'),
routes = require('./routes'),
api = require('./routes/api'),
connString = "postgres://...:...@...:5432",
cookieParser = require('../node_modules/cookie-parser'),
errorHandler = require('../node_modules/errorhandler'),
bodyParser = require('../node_modules/body-parser'),
session = require('../node_modules/express-session');
var app = module.exports = express();
. . .
내 설정 / 사용 규정은 다음과 같습니다.
app.set('port', 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(require('connect').bodyParser());
app.use(allowCrossDomain);
app.use(express.static(__dirname + '../'));
app.use(cookieParser());
app.use(session());
. . .
그리고 여기 내 급행 노선이 있습니다
// clear cookie session on logout
app.post(baseUrl + 'logout', api.logout());
// redirect all others to the index (HTML5 history)
app.get('*', routes.index);
// Start server
app.listen(app.get('port'), function () {
console.log("Express server listening on port %d in %s mode",
app.get('port'), app.settings.env);
. . .
에서 api.js
약간의 의존성
var pg = require('../../node_modules/pg'),
session = require('../../node_modules/express-session'),
connString = "postgres://...:...@...:5432";
. . .
여기에 간단한 로그 아웃 기능이 있습니다.
exports.logout = function(req, res){
req.session = null;
};
와, 알겠습니다. 잘못된 방법:
app.post(baseUrl + 'logout', api.logout());
올바른 방법 :
app.post(baseUrl + 'logout', api.logout);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다