2012-04-20 27 views
1

我想创建一个模型来处理与用户有关的所有事情,从findOne()函数开始。如何使用node.js创建用户模型?

app.js:

var u = new User(client); 
u.findOne(function(error, user) { 
    console.log(error, user); 
}); 

型号/ user.js的:

var User = function (client) { 
    this.client = client 
}; 
User.prototype.findOne = function (id, callback) { 
    client.connect(); 
    client.get('testkey', function(error, result) { 
    var test = "[email protected]"; 
    callback(null, test); 
    client.close(); 
    }); 
}; 
module.exports = User; 

node.js的抱怨findOne()将是不确定的。

创建这些模型并为它们提供对象(如数据库池等)的正确方法是什么?

+1

_client没有被定义,因为......它没有在'findOne'方法中定义。你应该使用'this.client.connect()'。 – wroniasty 2012-04-20 11:22:33

+0

当然。谢谢。 – Patrick 2012-04-20 11:49:52

回答

2

你的代码中包含各种错误:

  • 创建实例
  • ,当你不使用new您与对象文字语法混合功能:

    var User = function (client) { 
        client: client 
    }; 
    

    你想this.client = client;代替。现在函数体不做任何事情,因为它只是定义了一个名为client的标签,它与变量client没有任何关系。

我建议您搜索一个现有的node.js ORM,而不是尝试自己写一个。

+0

我同意。我打算使用flatiron /足智多谋,但我需要另一个引擎,这需要时间来发展。 – Patrick 2012-04-20 10:15:01

+0

我改变了源代码,它说客户端没有定义。这是我已经尝试了几次而且失败了。 – Patrick 2012-04-20 10:26:46