레이블이 nodejs인 게시물을 표시합니다. 모든 게시물 표시
레이블이 nodejs인 게시물을 표시합니다. 모든 게시물 표시

2016년 8월 2일 화요일

[Node.js] TypeError: require(...) is not a function 해결방법

'use strict';

module.exports = function(param){
    // something to handle
    require('./otherModule)(param);
});

위와 같은 코드 형태에서 TypeError: require(...) is not a function 에러가 났었다.
아래처럼 고치니 잘 작동했다.

module.exports = function(param){
    // something to handle
    require('./otherModule)(param);
});

혹시나싶어서 'use strict'를 지웠는데, 그것이 먹혔다.
이유를 알고싶어 검색하다가 아래와 같은 글을 찾았다.
Aliencube Community :: 자바스크립트에서 strict mode를 사용해야 하는 이유

엄격한 컨텍스트에서는 require('...')() 을 제한하나보다. 혹은 "상대적으로 안전하지 않은 액션"이였거나..


2016년 7월 25일 월요일

req.user is undefined on node + express + passport

Node.js + Express 4.x + passport 환경에서 로그인(또는 사용자 인증) 후에 Request 객체에 user가 저장되지 않아요.

express와 passport 모두 잘 동작하지만 사용자 인증 후에 req.user를 확인하면 아무값도 없는 현상이 나타났다.

express를 설정하는 부분에서 미들웨어 등록 순서때문에 일어난 일이다.

// set session
app.use(session({
    secret: 'SomethingPowerfulSecret'
}));
// set passport
app.use(passport.initialize());
app.use(passport.session());

express에 session 미들웨어를 설정한 후에, passport를 등록해야 정상적으로 동작한다.

게시글 목록