新手遇到的一个看不懂的地方,求解答
发布于 9 年前 作者 helloMane 3377 次浏览 最后一次编辑是 8 年前 来自 问答

我再/routes/routes_user.js中看到一个地方是这么写的。(PS:routes_user.js这个文件是定义很多方法的一个文件,应该叫路由还是什么的。。。原谅我太新手了) 在routes_user.js中,我就拿几句主要的吧。 var User = require(’./…/models/models_user.js’);//这个路径就是当前文件 exports.doUserAdd = function(req, res) { var newUser=req.body; User.save(newUser,function(err){ if(err) { console.log(“进入了doUserAdd的User.save 出错”); res.send({‘success’:false,‘err’:err}); } else { console.log(“进入了doUserAdd的User.save 正常”); exports.doUserVersionInit(req, res); } }); };

这里为什么会突然多出一个User.save方法出来?在这里我只看得懂doUserAdd是在定义一个方法,但是这个User.save这个方法并没有在其他地方出现过啊。求解释一下这个User.save是什么情况?

6 回复
  var User = require(‘./…/models/models_user.js’); //这个路径就是当前文件
  User.save()

你去·./…/models/models_user.js’里找就对了 另外你这个注释… 一个是/routes/routes_user.js一个是./…/models/models_user.js’ 怎么这个路径就是当前文件 呢?

User.save是调用了User模块就是./…/models/models_user.js 一般都是在该模块将User定义为一个对象并创建一个构造函数 如: function User(user){ this.username = user.username; this.password = user.password; this.email = user.email; }; 然后将save写入原型链 save()函数一般都是保存到数据库中 如下 User.prototype.save = function (callback) { var user = { username: this.username, password: this.password, email: this.email }; mongodb.open(function (err, db) { if(err){ return callback(err); } //read user db.collection(‘users’, function (err, collection) { if(err){ mongodb.close(); return callback(err); } collection.insert(user,{ safe: true }, function (err, user) { mongodb.close(); if(err){ return callback(err); } callback(null, user[0]); }); }); }); }; 然后向外导出save方法 module.exports = User; 如果你要查取数据 就定义User.prototype.get就好了

这个不是路由什么的功能,而是封装了方法用来增加数据, User对应的是一个数据库中的一张表,User.save()这种操作一般是持久化到硬盘的操作。

@sjfkai 谢谢啦!我才发现路径我看错了,怪不得找半天没找到这个方法。。。。

@tengrommel 恩恩,懂了,谢谢啦!

@wp3xpp 恩恩,我的路径看错了,现在找到对应的方法看到了,和你讲的差不多

回到顶部