현재 nodejs 서버를 실행 중입니다. 상황은 이것입니다, 나는 서비스 폴더를 가지고 있습니다. 폴더 안에는 많은 service.js 파일들이 있습니다. 각 서비스에서 서비스와 기능을 내 보냅니다. 예.nodejs 서버가 서비스를 내보낼 수 없습니다.
var service = {};
service.fun1 = fun1;
service.fun2 = fun2;
...
module.exports = service;
function fun1(params) { ... };
이제 서비스를 하나씩 요구해야합니다. 내가 다른 서비스에서 사용자 서비스를 이용해야 할 때마다 예를 들어, 나는
var userService = require('services/user.service');
을 할 것입니다 그리고 나서 사용자를 필요로 할 필요가 나는 쿠폰 서비스를
userService.fun1(params).then(function(data){ ... });
로 사용할 수 있습니다 서비스. 쿠폰 서비스에서 나는 사용자 서비스를 제외하고 다른 모든 서비스를 요구할 수 있습니다. 그리고이 오류가 있습니다.
그래서 userService의 로그를 기록하려고합니다. 즉, {}이므로 어떤 식 으로든 내보내지지 않습니다. 하지만 다른 서비스에서 나는 같은 방식으로 사용자 서비스를 요구할 수 있으며 정상적으로 작동합니다.
그래서 쿠폰 서비스에 다른 서비스가 필요하며 모두 작동하고 있습니다. 따라서 쿠폰 서비스의 사용자 서비스 만 오류를 제공합니다.
이것은 나를 미치게합니다.
------ 갱신 -------
(가) 오류를 발생 코드는 coupon_service.js에서입니다 : 같은 /services/
폴더에 모두 서비스를 가정
var userService = require('services/user.service');
function getAllCoupons(params) {
var deferred = Q.defer();
if (params.field1 && params.field2 && params.field3 && params.start_index && params.page_length) {
userService.fun1(params.field2).then(function(data) {
if (data.response1 == params.expected1 && helper.userIsAdmin(params.response1, data.validate)) {
deferred.resolve(getAll(params.field2, params.start_index, params.page_length, params.filter));
} else {
deferred.resolve(getCoupons(params));
}
});
} else {
deferred.resolve(getCoupons(params));
}
return deferred.promise;
}
두 파일에서 더 많은 코드가 도움이 될 것입니다. –
아마도이 문제는 쿠폰 서비스 코드에 있다고 생각됩니다. 실제로 오류가 발생하는 코드를 게시 할 수 있습니다. 마음에 떠오르는 생각 : 변수 "userService"를 직접 또는 간접적으로 덮어 쓸 수 있습니까? "userService"에 대한 상대 경로가 같은 파일을 가리키고 있습니까? – souldzin
같은 폴더의 다른 서비스에서 userService를 요구할 수 있기 때문에 경로가 정확해야합니다. – leo277