Tag: sails.js

限制Sailsjs中接受的模型属性?

借助Sailsjs,我可以创build一个模型并轻松添加新logging: http://localhost:1337/user/create 我也可以添加任意属性到我的logging: http://localhost:1337/user/create?name=bob 如何限制或限制可以在模型上设置的属性? 我认为在模型中定义属性会做到这一点,但似乎我仍然可以设置任何我想要的属性。 另外,请注意,每当我更换模型时,是否需要“重新安装”帆? 是否有一个列表框的代码需要重新启动Sails的什么地方?

避免在Node.js单身?

我已经多次读过,应该尽可能地避免单身。 通过单身我的意思是这种types的代码 exports = module.exports = new Passport(); 这段代码来自Node.js模块PassportJS。 它允许我们使用护照,并添加一些将在我们的整个代码中共享的var。 所以,你可以看到我们可以做这个代码: https : //github.com/ragulka/sails-starter-app/blob/master/api/controllers/SessionController.js (这只是一个例子,我也是,我也是怪没人)。 请注意,他正在使用require的文件顶部的护照,然后使用之前在代码中添加的策略之一。 显然这很方便,但这是做到这一点的最好方法吗? 有没有办法从先前的代码中的控制器内传递护照variables? 让我知道如果有什么不清楚。 提前致谢。

我怎样才能做一个“或”查询在帆船上的Model.find?

我必须做一个查询,接受来自Sails中的一个字段的两个条目。 既然Sails使用ORM的水线,我也在这个问题上标记了它。 Conversions.find({status : 0} || {status : 2}).exec(function(err, convs){ // do something }); 这不起作用,有一个使用Sails / Waterline的解决scheme,或者我应该去一个自定义查询? 非常感谢

sailsjs cors坏请求仍然通过控制器

所以我的cors.js文件看起来像 module.exports.cors = { allRoutes: true, origin: require('./local.js').hosts, // this is 'http://localhost' } 然后,我select了一个随机的网站来请求,在这种情况下: http : //tools.pingdom.com/fpt/ 这是我的要求和页面的响应 $ .post(' http:// localhost:1337 / gift / create ')Object {readyState:1,getResponseHeader:function,getAllResponseHeaders:function,setRequestHeader:function,overrideMimeType:function …} jquery-2.1.1.min.js :4 POST http:// localhost:1337 / gift / create (index):1 XMLHttpRequest无法加载http:// localhost:1337 / gift / create 。 “Access-Control-Allow-Origin”标题包含无效值“'。 Origin'http: //tools.pingdom.com '因此不被允许访问。 但是,我仍然在控制台中获取错误,因为控制器function仍然被调用。 sails> error: Sending 500 […]

Angular不能在jQuery Ajax中加载页面

我使用ajax来dynamic加载Sails项目视图/ homepage.ejs中的部分页面。 控制器是“食物”,“显示”是“食物”的一个动作,所以我有一个文件/views/food/show.ejs。 所以通过使用Ajax load food / show,会加载show.ejs。 $('#outerDiv').load("food/show",function(responseTxt,status,xhr){ if(status!=="error"){ alert("BOOT…"); //bootstrap angular angular.bootstrap($("#outerDiv")); } }); show.ejs的内容是这样的: <script> alert("LOAD.."); var app = angular.module("myApp",[]); app.controller("myCtrl",function (){ this.numInStock= 10; }) </script> <div ng-app="myApp" ng-controller="myCtrl"> <p>The number in stock is: {{numInStock}}</p> </div> 但是,在加载页面的angular度仍然无法正常工作,即使我尝试手动启动angular度新的加载页面。 警报(LOAD …)是第一个,然后警报(BOOT …)接下来,而我发现新的页面已经呈现像“库存数量是{{numInStock}}”“。 很明显,这是错的,我希望它是“库存数量是:10”。 Chrome控制台出现错误: Uncaught Error: [ng:btstrpd] http://errors.angularjs.org/1.2.26/ng/btstrpd?p0=%26lt%3Bdiv%20id%3D%22subPage%22%26gt%3B

设置Sails js视图扩展名不起作用

我正在使用手柄风帆0.10.5。 我想我所有的车把模板使用扩展名.hbs而不是.handlebars 。 我阅读了sails文档,你可以在config/views设置一个extension属性来改变sails在渲染视图时要查找的文件扩展名。 http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.views.html 我已经设置了我想要使用的扩展,但是在sails正在渲染视图的时候并没有被使用。 这是我去浏览器时得到的索引路线。 { "message": "Could not render view \"index\". Tried locating view file @ \"/Users/jeff/Sites/bcsm/views/index\".", "code": "E_VIEW_FAILED", "status": 500, "view": { "name": "index", "root": "/Users/jeff/Sites/bcsm/views", "defaultEngine": "handlebars", "ext": ".handlebars" } } 这是我的configuration: module.exports.views = { engine: 'handlebars', layout: false, ext: '.hbs' }; 我也试过以下,没有运气: extension: 'hbs' extension: '.hbs' ext: 'hbs' 有没有人解决过这个问题,或有任何想法?

用Sails.js中的一个请求创build/更新多个logging

我想知道在一个请求中创build/更新多个logging的最佳做法是什么。 我知道我们可以使用Promise.all()来做到这一点。 但是如果我想告诉客户哪个logging成功了,哪个失败了呢? 例如,用户发布如下内容: { departmentId: 1, students: [ {name: 'John', studentId: 123}, {name: 'Mike', studentId: 124}, ] } 而我目前的解决scheme是: StudentController: var departmentId = req.param('departmentId'); var postStudents = req.param['students']; var department; var failedRecords = []; Department.findOne() .then(function (_department) { department = _department; var students = []; while (postStudents.length) { var student = postStudents.pop(); student.department = […]

无法使用ejs模板显示Flash消息

我是NodeJS的新手。 我有一个问题,我无法显示在我看来的Flash消息。 这是我的控制器, index : function(req, res){ res.locals.flash = _.clone(req.session.flash); res.locals.layout = false; res.view('login'); }, login : function(req, res){ …. if(!admin){ req.session.flash = { err : 'User is not found.' // My flash message } res.locals.layout = false; res.redirect('login'); return; } ….. } 这是我的看法, <% if(flash && flash.err) { %> <div class="alert alert-danger"> <% JSON.stringify(flash.err) […]

使用Sails在express节点.js中从客户端发送一个string到mongoDB

尝试在Sails中从客户端发布到mongoDB的string val是从客户端到服务器数据库实时发布的string POST表单 (在这里html是正确的select?) <!DOCTYPE html> <html> <body> <form action="post" method="post"> <p> <label for="val">'Enter val'</label> <input type="text" name="val" autofocus /> <input type="submit" /> </p> </form> </body> ` routes.js (?) '/post': {controller: "PostController", action: "post"} Post.js module.exports = { 属性:{val:{type:'string',required:true,unique:true}}} PostController.js (?) module.exports = { var bodyParser = require('body-parser'); var app = express(); app.post : function […]

Authentication.js / sails.js中的authentication和会话

一直在通过帆演员教程工作,我很困惑会议的工作方式。 在本教程中,用户在会话控制器中被标记为已validation: req.session.authenticated = true; req.session.User = user; res.redirect('/'); 为什么会话被保存在请求中? 我的理解是,express.js中的'req'对象是浏览器发送给服务器的信息。 服务器不应该在其他地方保存这些信息(当另一个请求时请求对象不会被删除吗?) 此外,当使用ejs模板化页面时,应用程序以某种方式从另一个对象会话中检索身份validation状态: <% if (session.authenticated) { %> 为什么不直接设置这个variables? 可能是一个愚蠢的问题,但我很困惑的逻辑如何工作和在线文章/教程不帮助我理解…