2013-01-22 3 views
0

nodejs 앱에서 작업하고 있습니다.
폴더 구조는 app.js 자체 라우팅 ....
내가 얻는 방법을 알고 싶어/컨트롤러에서 데이터 (객체)을 반환 수행하는 동안nodejs의 모듈에서 객체 반환/가져 오기 mongodb

app 
app.js 
package.json 
../model/schema.js 
../controller/controller.js 
../views 


모든 논리가 controller.js에서입니다. js에서 app.js로
mongodb 문서를 컨트롤러에서 응용 프로그램으로 보내기 위해 'return'을 사용하고 있지만 정의되지 않았습니다.

var model=require('../model/schema'); 
    exports.loginUser=function(user) 
    { 

     model.registerUser.findOne({uname:user.uname,pass:user.pass},function(err,doc){ 
     if(!err){ 
      console.log("Here loggedin: ",doc); 
      return doc;    
     } 
     else 
      console.log("Invalid username or password"); 
     }); 
    }; 
+0

을 Heres 문제에 대한 자세한 설명과 코드 http://stackoverflow.com/questions/10928471/nodejs-pass-value-from-one-module-to-another-module –

답변

0

MongoDB). 기본적으로 callbacks을 컨트롤러에 전달하고 DB에서 검색 한 데이터로 호출해야합니다. 링크 된 프로젝트에서 app.js 및 lib/db.js를 살펴보십시오.

+0

예 콜백은 시나리오에 사용됩니다 ... 감사합니다. –

0

자바 스크립트 (Node.js를 따라서) 비동기 : app.js..i의

Heres는 코드 불필요한 코드를

var express = require('express'), 
    app = express.createServer(express.logger()), 
    io = require('socket.io').listen(app), 
    routes = require('./routes'); 
    var controller=require('./controller/controller'); 
    var model=require('./model/schema'); 

    app.get("/", function(req, res) { 
    res.render("chatroom.html"); 
    }); 

    io.sockets.on('connection', function (socket) { 
     socket.on('login',function(user) 
     { 
      var onliner=controller.loginUser(user); 
      console.log("Onlinersss: ",onliner); 
     }); 

     socket.on('registerUser',function(user){ 
      controller.registerUser(user); 
     }); 
    }); 



을 Heres controller.js 코드를 제거 하였다. 'return document'를 쓸 때 function(err, doc)에 정의 된 익명 함수가 반환됩니다. 데이터를 가져 오려는 loginUser 함수는 반환되지 않습니다.

loginUser는 즉시 반환하고 (사용자가 지정하지 않았으므로) undefined를 반환합니다. 내가 의미하는 바를 알기 위해 'return true; loginUser의 마지막 줄로 사용하면 'true'값을 얻을 수 있습니다.

그러나 값을 반환하지 않으려합니다. 값으로 콜백하고 싶습니다. 즉, 그래서 여기하는 유래 대답의 범위를 넘어 좋은 자원이다 : 매우 유사 데이터베이스 (로 거의 같은 라이브러리와 RethinkDB 사용하는 난 그냥 GitHub에 프로젝트를 추진 한

http://bjouhier.wordpress.com/2011/01/09/asynchronous-javascript-the-tale-of-harry/

+0

그래 .. 난 당신을 얻었다 그 함수 (err, doc)는 반환되지만이 해리 튜토리얼을 얻지는 않습니다. –

+0

다른 방법으로 제안 하시겠습니까 ..? –

+0

방금 ​​내 대답을 가지고 : http://stackoverflow.com/questions/10928471/nodejs-pass-value-from-one-module-to-another-module –

관련 문제