Tag: 节点 orm2

如何访问passport.deserializeUser中的node-orm2 Express中间件

我使用Passport进行身份validation,并与node-orm2一起使用。 护照要求您注册函数以序列化和反序列化会话中的用户。 我的用户存储在我通过node-orm2的Express中间件访问的数据库中。 orm2中间件将其模型标记在req对象上以便于访问。 不幸的是,Passport不提供对deserializeUser中的req对象的访问。 我已经遇到了这个解决scheme ,但我希望有更好的东西: var User; passport.use({ passReqToCallback: true }, new LocalStrategy(function (request, username, password, done) { if (!User) { User = request.models.User; } User .find({ username: username }) .limit(1) .run(function (err, users) { var user = users[0]; if (err) { done(err); } else if (!hasher.verify(password, user.password)) { done(null, false); } else […]

Nodejs ORM2callback参数

我在for语句中创build模型: for (var j = 0; j < data.length; j++) { models.MyModel1.create({ name : data[j].name }, function(err, model){ if (err) { throw err } models.OtherMyModel.create({ model_id : model.id, index : j }], function(err,submodule){ }); }); } 所以在这里我想创build将使用父模型id和它的索引j的子模型。 而因为asynchronousvar j将data.length – 1的所有callback。 我怎样才能将索引parameter passing给模型创buildcallback?

如何使用Node-orm2将json对象漂亮地打印到数据库

我正在使用node-orm2将模型持久化到mysql db列。 它工作的很好,除了我想写的JSON漂亮的打印,所以我可以很容易地阅读它,当我查看数据库。 这可能吗?

节点Orm2交易插件

我似乎有问题如何使用交易插件(与Postgresql)与节点orm2。 我想我误解了事务如何与asynchronous函数调用一起工作。 这是我的代码的一个例子: function(row){ db.transaction(function(err, txn){ if(err){ return console.log(err) }; row.property = 'foo'; row.save(function(err){ if(err){ return console.log(err) }; console.log("saved"); }); txn.commit(function(err){ if(err){ return console.log(err) }; console.log("committed"); }); }); 当我运行这段代码时,偶尔会看到console.log输出: "committed" "saved" 这是我所期望的相反的顺序。 我对行进行的更改不会保存到数据库中。 看起来在这里有一些asynchronous函数调用的问题,但我只是从节点orm2事务插件的文档。 任何人有任何想法我做错了什么? 谢谢!

在node.js(node-orm)中链接模型关系,就像在Rails中一样

我正在构build一个相对较大的NodeJS应用程序,目前我正试图弄清楚如何从数据库中获取我需要的数据。 这是我的模型的一部分: 一个用户有一个angular色,它可以访问许多模块(其中有一个表role_modules来链接angular色和模块)。 在Rails中,我会做一些像user.role.modules来检索他有权访问的模块列表。 在NodeJS中有点复杂。 我使用node-orm2和PostgreSQL。 这是我到目前为止: req.models.user.find({email: req.body.user}, function(err, user) { user[0].getRole(function(err, role) { role.getModules(function(err, modules) { var list_modules = Array(); modules.forEach(function(item) { console.log(item); list_modules.push(item.name); }) 但我不能这样做,因为item只包含role_id和module_id。 如果我想要这个名字,我将不得不做item.getModule(function() {…}) ,但结果将是asynchronous的…所以我真的不知道我怎么可以结束包含用户有权访问的模块名称的数组…有什么想法? 另外,是不是比实际运行多个JOIN的单个SQL查询慢? 因为就我所见,ORM使得多个查询来获得我想要的数据… 谢谢!

MySQL的ORM的Node.js选项

我想创build一个node.js和基于MySQL的应用程序。 Google和Stack Overflow为Javascript ORM提供了很多选项: sequelize.js persistence.js 吃水线 knex.js 节点ORM2 bookshelf.js objection.js 但是,我找不到一个支持子查询,联接,转换,存储过程的完美ORM,与MySQL集群兼容,并且具有良好的文档和社区支持。 还有其他的select吗? 在作出决定时应考虑哪些因素?