Tag: sails.js waterline

在Sails.js中从MongoDB获取数据

我是Sails.js的新手。 我试图从我的Mongo Db数据库“TestDB”中获取数据,我有一个名为“Components”的集合,所以我创build了一个名为Components的Model,其中包含了我的集合 Components.js module.exports = { attributes: { TaskId: { type: 'string', required: true }, CompName: { type: 'string' }, InitialAttr: { type: 'string' }, Value: { type: 'string' } } }; ComponentsController.js module.exports = { GetComponentList : function(req, res){ Components.find({ CompName: 'ImageComponent'}).exec(function(err, data) { if (err) return next(err); res.json(data); }); } }; 路线: […]

如何在不覆盖整个蓝图的情况下扩展Sails.js中的蓝图function?

我有一个问题,我一直没能find答案,即使我觉得这种function在Web应用程序中非常普遍。 我对sails.js和一般的web开发相当陌生,所以如果我使用错误的术语或其他东西,请随时纠正我。 我试图改变sails.js蓝图的默认function,特别是对于初学者来说“查找”。 我有一个模型,我们称之为Book,它有一个属性'user',这当然涉及到一个用户。 我想过滤来自localhost:[port] / book的结果,以便它只显示拥有者是当前login用户的书籍,而不是显示数据库中的所有书籍。 到目前为止,我已经试过检查策略是否会成为答案,但是看起来他们似乎产生了非常好的二进制“是/否”结果,不能用于过滤。 然后我试着从BookController中重写默认的查找操作,但是我害怕我重写了一些有用的function,因为我没有完全理解蓝图的源代码。 然后,我检查了在Sails.JS中持久化之前添加缺less的请求参数的答案,并尝试添加所有者作为URL查询参数,但发现我无法从routes.js访问当前login的用户,这个想法是可能从一开始就注定了。 无论如何,我想知道是否有一个聪明的方式来处理这个问题。

如何使用自定义查询方法来扩展水线?

我想创build和使用水线的一些自定义查询方法。 例如方法makeItAwesome : Article.makeItAwesome({ id: 42 }).exec(function(err, awesomeArticle) { /* … */ }); 当然,我可以将这个makeItAwesome添加到模型的静态方法中,但是如果我想要其他模型可重用的常用的东西。 sails.js或waterline本身是否有内置的方法,或者我应该自己做? 如果不是哪里是最好的方法来保持这个东西? 它必须是一个单独的模块,需要在每个模型中,或者我可以在某处扩展每个模型原型?

我的sails.js服务返回“未定义”的调用控制器的行动

我创build了一个名为CategorieService的服务。 它的函数getAllCategorie()应该返回一个对象: //CategorieService.js module.exports={ getAllCategorie:function() { Categorie.find({where:{statut:'A'},sort:'libelle ASC'}).exec(function(err,categories) { if(categories) { categories.forEach(function(categorie){ console.log('categorie libelle =>'+categorie.libelle); }) return categories; } }) } }; 根据需要login控制台显示结果 categorie libelle => car categorie libelle => clothes categorie libelle => rent 但是,当我在我的控制器categorie is undefined为什么? 和我如何解决它? 低于我的控制器 //ArticleControllerjs var categorie=require('../services/CategorieService'); module.exports = { /*view*/ indexArticle:function(req,res) { var title=req.__('gestiondesarticles.title'); res.view('article',{categories:categorie.getAllCategorie(),title:title,page_name:'article'}); }, }

SailsJS:beforeUpdate(生命周期callback),访问当前值

很明显,如何访问新的值,第一个参数包含它们 beforeUpdate: function (values, cb) {….} 但是,我怎样才能访问要被replace的当前值呢?

ObjectID不存储hex值

最初,我的Sails / Mongo将ObjectID存储在数据库中,如下所示: "_id" : ObjectId("557077fb836bdee256004232") 不知道发生了什么变化或发生,但现在新的logging被存储如下: "_id" : { "_bsontype" : "ObjectID", "id" : "UtÓ-Åß\u0010C&5", "generationTime" : 1434552692 } 这仅在6个开发人员环境中才会发生。 我检查过的东西: 从上周恢复到稳定的提交,清除了node_modules,npmcaching等重新安装,没有运气。 完全重新安装Node / npm / MongoDB以确保我处于最新的稳定版本…我的版本都匹配现有的开发人员环境,没有问题。 如果有什么具体的东西可以帮助,我会非常乐意分享configuration/日志。 环境:节点0.12.4,npm v2.11.2,MongoDB shell v3.0.4。 我已经debugging了代码和所有的东西,我相当确定这是我的环境独特的东西,以及它如何与Mongo / Sails / Waterline / BSON交互。 我希望这是更多的“嘿,我以前见过这个,这是我如何解决它”的问题,而不是一个实际的代码/debugging问题! 谢谢!

填充标准失败

使用下面的函数,操作不会正确build立标准。 getArticlesByUser:function(cb,val) { Article.find({state:'Normal'}).populate('user', {id: cb.iduser }).populate('images').populate('devise').exec(function(err,article){ if(article) { val(null,article); } if(err) { val(err,null); } }) } 它似乎忽略了user模型的标准。 我该如何解决?

如何使用Sail.js和MySQL实现全文search?

我不认为Waterline目前支持这个function。 那么,为了使用户能够在应用程序中使用全文searchfunction,还需要安装哪些其他npm软件包? 我希望我的用户在一个input中input关键字,然后服务器从我指定的数据库的多个表中的多个列中返回过滤的数据。 我的networking应用程序利用Angular.js,Sails.js和MySQL。

聚合匹配pipe道不等于在MongoDB中

我正在为MongoDB的聚合pipe道,我试图检索用户不等于一个variables的项目。 出于某种原因,我无法做到这一点。 我试图以不同的可能方式使用$not , $ne和$nin ,但无法使其工作。 这是它的样子: 数据示例: [{ "_id": { "$oid": "565674e2e4b030fba33d8fdc" }, "user": { "$oid": "565674832b85ce78732b7529" } }, { "_id": { "$oid": "565674e2e4b030fba33d8fdc" }, "user": { "$oid": "565674832b85ce78732b7529" } }, { "_id": { "$oid": "565674e2e4b030fba33d8fdc" }, "user": { "$oid": "56f9dfc5cc03ec883f7675d0" } }] pipe道示例(简化了这个问题): 其中req.query.user.id = "565674832b85ce78732b7529" collection.aggregate([ { $match: { user: { $nin: […]

sails.js多对多关系连接表中的额外字段

我有两个模型: Order.js module.exports = { attributes: { //Id is generated by mongo and is a primary key address: { type: 'string', required: true, size: 1000 }, status: { type: 'string', required: true, size: 15, defaultsTo: 'pending', enum: ['pending', 'processing', 'cancelled'] }, total: { type: 'string', required: true, size: 50 }, menues: { collection: 'menu', via: […]