안녕하세요, 저는 nodejs와 mocha를 처음 사용합니다. module.exports
을 사용하여 콜백 함수에서 값을 반환하려고했습니다. 그러나, 그것의 반환 undefined
. 간단한 경우에 그것은 비록 작동합니다. 도와주세요.모듈 내보내기 콜백 함수가 정의되지 않은 문자를 반환합니다.
결과
Module Export Example
√ Test Case 1: Module
Hello Node World!!! (*** this works - its a direct return ***)
√ Test Case 2: Module
undefined (*** this fails - its from a callback fn ***)
google.js
var requirejs = require('requirejs');
requirejs.config({ baseUrl: '.', paths: { }, nodeRequire: require });
describe('Module Export Example', function(){
var mod;
before(function(done){
requirejs(['./googleModule'],
function(_mod) {
mod = _mod;
done();
});
});
it('Test Case 1: Module', function(done){
console.log(mod.get(done));
});
it('Test Case 2: Module', function(done){
console.log(mod.google(done));
});
});
googleModule.js
var request = require('request');
module.exports = {
get: function(done){
var a = "Hello Node World!!!";
return(done(), a);
},
google: function(done){
var a = doCallback(function(){
var b = "PRINT DATA: " + data.statusCode + ' ' + data.headers['content-type'];
return(done(), b);
});
return(done(), a);
}
}
function doCallback(callback, done){
var options = {url: 'http://www.google.com', headers: {'Content-Type': 'text/html'}, encoding: null};
request.get(options, function(err, res, body){
var a = callback(res, done);
return (callback(), a); //???????
});
}
require.js를 사용하는 이유가 있습니까? –