我试图在一个内部继承一个函数,但我不确定如何。
function register(Username, Password, callback)
{
var result;
UserModel.findOne({username: Username}, function(error, data)
{
if(error)
console.log(error);
if(data)
result = 'already exist';
mongoose.connection.close();
if(!data)
{
var user = new UseModel(
{
username: Username,
password: Password
});
user.save(function(error)
{
if(error)
{
console.log(error);
result = 'Error';
}
result = 'success';
mongoose.connection.close();
});
}
});
callback;
}
我认为进行回调,我可以在那里设置自定义函数。
我已经看到人们会在另一个内部继承功能的某些地方,但我不再找到它们并且我正在尝试执行它们,因为这段代码我在mongo中保存了一条记录。
所以我只想说,在其他代码中,我用前2个参数调用这个函数,第三个将根据结果执行我希望它做的函数,就像这样。
this.register('myname', 'mypassword', function(
{
if(result != 'error')
{
response.render('register',
{
'Title': Title,
'result': result
});
}
}));
我不确定继承是否像这样。但这就是我想要做的事情,我正在学习节点的js所以请抱歉我的经验不足。
PD:即时为node.js使用express,swig,body-parser和mongoose模块
答案 0 :(得分:1)
以下是register()
函数的外观:
function register(Username, Password, callback)
{
UserModel.findOne({username: Username}, function(error, data)
{
if(error)
return callback(error);
if(data)
return callback(null, 'User already exists');
var user = new UseModel(
{
username: Username,
password: Password
});
user.save(function(error)
{
if(error)
return callback(error);
callback(null, 'Success');
});
});
}
以下是如何使用它:
this.register('myname', 'mypassword', function(error, result)
{
if (error)
return console.error(error); // do something better here
response.render('register',
{
'Title': Title,
'result': result
});
});