CNode

学习《Nodejs开发指南》中,用户注册 功能不正常了。TypeError: undefined is not a function

问答
Nnamletneg发布于12 年前最后回复12 年前12 回复6911 浏览0 收藏

跟着Nodejs 开发指南 书中的 microblog 项目开发,注册功能遇到问题了,求教大神们。。。 user.js的代码段: untitled1.png index.js的代码段: untitled2.png 结果显示: untitled4.png

查看回复

回复 (12)

C
chloe#1·12 年前

数据库连上了吗,callback传了吗

N
namletneg#2·12 年前
引用 chloe数据库连上了吗,callback传了吗

@chloe 连上了,能写入数据库,比如注册提交后,它报错了,等再重新启动,可以用刚注册的账号登录。。。 很诡异的是 有时候能注册成功不报错。。

1
119786155#3·12 年前

截图没有行号,建议楼主加上行号再截图,行号对于debug是有帮助的

E
eeandrew#5·12 年前

@namletneg 这个教程错的离谱。作者完全不懂异步代码。 我帮你改了下,你要是想接着学可以看看。

User.prototype.save = function save(callback){
  var user = {
    name: this.name,
    password: this.password,
  };
  mongodb.open(function(err, db){
    if(err){
      return callback(err);
    }
    db.collection('users', function(err, collection){
      if(err){
        mongodb.close();
        return callback(err);
      }
      collection.ensureIndex('name', {unique: true,safe:true},function(err,indexname){
        collection.insert(user, {safe: true}, function(err, user){
        mongodb.close();
        return callback(err, user);
      });
      });
    });
  });
};
E
eeandrew#6·12 年前

@namletneg 上面代码只是能跑而已,但是对异步代码的处理依然是错误的,实在是不想改这样的代码。

E
eeandrew#9·12 年前

@namletneg 异步代码要通过回调处理流程。自己领悟。

N
namletneg#10·12 年前
引用 eeandrew@namletneg 异步代码要通过回调处理流程。自己领悟。

@eeandrew 也就是每个处理都有一个回调函数?

D
DavidCai1993#11·12 年前

里面用的express的大版本应该和现在也不同了吧。

N
namletneg#12·12 年前
参与回复
登录后即可参与回复。登录