Tag: sails.js

将对象数组放入风帆控制器中

控制器需要看起来像为传递的数组中的每个对象创buildlogging? 我是否创build一个for循环? 这是我有: Agent.findOneById(req.query[0].agentId, function(err, agent) { console.log(agent); for (i = 0; i < req.query.length; i++) { Record.findOrCreate({userDN: req.query[i].userDN}, { name: req.query[i].name, owner: agent.id }).exec(function (err, newRecord) { if (err) return res.negotiate(err) res.json(newRecord); }) } 这创build一个对象,数组中有15个项目。 这是来自数组的每个请求的一个对象: query: { '0': { userDN: '99999', name: 'Test User', agentId: '4' },

为什么我的WebSockets握手失败与ERR_CONNECTION_RESET?

我刚刚创build了一个新的sails.js应用程序 sails new testProject 然后我做了 sails lift 现在我浏览我的地址( http://153.92.xx.xxx:1337 ),一切正常。 不过,我知道sails默认使用XHR,但如果可以的话,会尝试升级到WebSockets。 无论我尝试什么,我都无法使WebSocket工作。 我可以看到,该应用程序试图连接,但只是(待定)约18秒,才放弃。 然后回到XHR。 错误如下: WebSocket connection to 'ws://153.92.xx.xxx:1337/socket.io/?__sails_io_sdk_version=0.11.0&__sails_io_sdk_platform=browser&__sails_io_sdk_language=javascript&EIO=3&transport=websocket&sid=8qjNepcGV5Rh3VvzAAAA' failed: Error during WebSocket handshake: net::ERR_CONNECTION_RESET 我可能做错了什么? Sailsjs v0.11.2 Nodejs v0.12.7 Debian 8 x64 iptables的一切都完全接受

注销并获取新/ csrfToken后,SailsJS CSRF不匹配

我正在创build单页面应用程序。 我创build了login注销操作,他们工作正常。 但是,如果用户注销并且不会刷新浏览器中的页面,则由于“CSRF不匹配”错误而无法再次login。 脚步: 1.在第一次加载页面时,csrf是view local: <div class="app" id="app" data-csrf="<%= _csrf %>"></div> 2.用户使用此令牌成功login: 420["post",{"method":"post","headers":{},"data":{"_csrf":"VHcT2F44-KhZMJmhcAVB1H69BgTMWMZji9_8","login":"alex","password":"123"},"url":"http://127.0.0.1:1337/login"}] 430[{"body":{"id":"560e5756cd01633407eea8be"},"headers":{cut headers},"statusCode":200}] 3.然后,用户使用此令牌注销: 421["post",{"method":"post","headers":{},"data":{"_csrf":"VHcT2F44-KhZMJmhcAVB1H69BgTMWMZji9_8"},"url":"http://127.0.0.1:1337/logout"}] 431[{"body":"ok","headers":{cut headers},"statusCode":200}] 4.如果他再次尝试login,他会发现“CSRF不匹配”错误,我期望: 422["post",{"method":"post","headers":{},"data":{"_csrf":"VHcT2F44-KhZMJmhcAVB1H69BgTMWMZji9_8","login":"alex","password":"123"},"url":"http://127.0.0.1:1337/login"}] 432[{"body":"CSRF mismatch","headers":{},"statusCode":403}] 5.我正在捕获这个错误,并按照文档中的说法执行/ csrfToken请求 423["get",{"method":"get","headers":{},"data":{},"url":"/csrfToken"}] 433[{"body":{"_csrf":"49C5OVUZ-6SIL_zW3g1NGI87ux6Mlp-UJj_w"},"headers":{cut headers},"statusCode":200}] 6.尝试使用新令牌重新login: 424["post",{"method":"post","headers":{},"data":{"_csrf":"49C5OVUZ-6SIL_zW3g1NGI87ux6Mlp-UJj_w","login":"alex","password":"123"},"url":"http://127.0.0.1:1337/login"}] 434[{"body":"CSRF mismatch","headers":{},"statusCode":403}] 我可以用相同的结果重复步骤5和6。 如果我刷新页面,我可以无误地login。 问题是,发生了什么事? 为什么步骤6中的标记不匹配? 编辑:注销方法: req.session.destroy(); return res.send("ok"); 编辑2:发送请求: import socketIOClient from 'socket.io-client'; import sailsIOClient from 'sails.io.js'; var io = sailsIOClient(socketIOClient); io.socket.post(form.action, […]

SailsJS + PassportJS(sails-generate-auth) – 无法login用户

我目前在使用PassportJS在我的SailsJS应用程序中validation用户的问题。 根据本教程,我已经使用sails-generate-auth生成了所有需要进行身份validation的内容。 看起来像POST请求按照routes.js文件中的定义正确路由: 'post /auth/local': 'AuthController.callback', 'post /auth/local/:action': 'AuthController.callback', 在AuthController中我有以下代码: callback: function (req, res) { function tryAgain (err) { // Only certain error messages are returned via req.flash('error', someError) // because we shouldn't expose internal authorization errors to the user. // We do return a generic error and the original request body. var flashError = […]

使用sails时,是否需要在package.json中显式地使用grunt?

我有sails app和主package.json如下。 我真的需要这里所有的咕噜声,如果帆也有。 特别是如果帆在0.4.5版本中咕噜咕噜,在这里我有0.4.2反正没有主要应用程序package.json咕噜入口。 sails lift后有错误。 这看起来有些不一致。 { … "dependencies": { "ejs": "~0.8.4", "grunt": "0.4.2", "grunt-contrib-clean": "~0.5.0", "grunt-contrib-coffee": "~0.10.1", "grunt-contrib-concat": "~0.3.0", "grunt-contrib-copy": "~0.5.0", "grunt-contrib-cssmin": "~0.9.0", "grunt-contrib-jst": "~0.6.0", "grunt-contrib-less": "0.11.1", "grunt-contrib-sass": "^0.9.2", "grunt-contrib-uglify": "~0.4.0", "grunt-contrib-watch": "~0.5.3", "grunt-sails-linker": "~0.9.5", "grunt-sync": "~0.0.4", "include-all": "~0.1.3", "mongodb": "^2.0.41", "rc": "~0.5.0", "sails": "git://github.com/balderdashy/sails.git", "sails-disk": "~0.10.0", "sails-mongo": "^0.11.2" } … }

Sails.js:服务res.view()后,如何保持运行代码?

根据sails 文档 ,res.view()是terminal。 这意味着它应该是给定请求的最后一行代码。 不过,有时候我想在后台运行代码而不强迫用户等待它。 如更新日志,或与此请求相关的后台更新。 什么是正确的方式来实现这样的事情?

我如何使用SailsJS填充嵌套的相关集合?

我有3个系列, Users , Clan ,有许多Clanmembers 有许多Users Clanmembers 所以当我这样做 Clan.find().populate('clanmembers'); 它工作正常,并返回结果,但后来我得到了这样的事情: { clanmembers: [ { role: 'Entry', owner: 2, member: 2, id: 1, createdAt: null, updatedAt: null } ], owner: { username: 'tester', email: 'tester', about: 'This is\n\na test hello\n\n\n\n\n\n\n\n\nhiiii', profileurl: '', avatar: 'asd.jpg', rank: '1', id: 2, createdAt: '2015-10-25T10:15:20.000Z', updatedAt: '2015-10-25T21:31:47.000Z' }, clanname: 'testset', clantag: […]

Angular没有显示响应数据

这是后端function userDetail : function(req,res){ User.findOne().where({id : req.userID}).exec( function findOneCB(err, result) { if (err) { sails.log.error("Error Occurred : "+ err); } if(result != undefined ){ Account.find().where({userID: req.userID},{StatusCode :"Successful"}).exec( function findCB(err, accounts) { if (err) { sails.log.error("Error Occurred : "+ err); } if(accounts != undefined ){ var sendData={ userData:result, accountData :accounts }; console.log(sendData); res.json(sendData); } }); } […]

如何在sailsjs api上正确configurationCORS

我的应用程序由前端的angularjs和后端的sailsjs组成。 我正在尝试在后端configurationCORS,但没有成功。 我希望地址api.example.com上的后端只能从地址为blog.example.com的前端访问。 我在sails config / cors.js上的设置是: allRoutes: false, origin: 'http://blog.example.com', credentials: true, methods: 'GET, POST, PUT, DELETE, OPTIONS, HEAD', headers: 'content-type' 结果是,如果我input到浏览器地址栏api.example.com,而不是我的前端,我的后端可以自由访问! 在Chrome中,我得到的答案是:“Access-Control-Allow-Origin'标头包含无效值''”,Firefox只发送空的Response Body。 我也尝试在config / routes.js中configurationcors,但也没有成功。 任何帮助表示赞赏!

在hash标签之后,sails无法从请求中读取GET参数

我试图将sails.js作为一个路由控制器和apipipe理,使用angular.js作为前端,但是当我使用angular来修改URL的时候,我发现了这个问题 举个例子/ 原始URL: http:// localhost 修改后$ location.search({'lang':destLanguage}); 修改的URL: http:// localhost#?lang = fr 然后我使用$ window.location.reload(); 重新加载页面发送GET参数到sail控制器,但是当我在页面控制器debugging时,我发现sails不能从请求中读取参数。 req.param('lang')==未定义 我不知道如何解决这个问题。 我试图解决这些问题整整几天。 谢谢,