Tag: sails.js

护照-Facebook上的风帆。 没有Facebooklogin页面

Sails版本:0.12.13节点版本:7.10.1 我的身份validation控制器: facebookSignin: function (req,res,next){ passport.authenticate('facebook',{scope : 'email'})(req, res, next); }, facebookCallback: function (req,res){ passport.authenticate('facebook', { successRedirect: '/', failureRedirect: '/login' }) }, Passport.js passport.use(new FacebookStrategy({ clientID: 'XXXXXXXXXXXXXXXXX', clientSecret: 'XXXXXXXXXXXXXXXX', callbackURL: "http://localhost:1337/api/v1/auth/facebook/callback" }, function(accessToken, refreshToken, profile, done) { } )); Routes.js 'get /api/v1/auth/facebookSignin': 'AuthController.facebookSignin', 'get /api/v1/auth/facebook/callback':'AuthController.facebookCallback', 在调用此auth函数时,不会显示login页面。

在mongoDB中使用sailsselect满足条件的特定字段

我有一个mongoDB集合和JSON的样子 [{ class : "I", subject : "Maths", students: [{ name : "John", roll_no : "1001", marks : "65", is_passed : "true" }, { name : "Leo", roll_no : "1002", marks : "48", is_passed : "false" }] }] 我能够使用命令获取数据 My_Table_Name.find({}, {fields:{ 'class' : 1, 'students':1 } }) .populate('students',{ select : ['name', 'is_passed'] }) 由此我可以得到的输出 [{ […]

将用户保存在sails.js中

在sails.js 0.9.7中,如果done()函数永远不会调用,我该如何debuggingmodel.create()? 我有一个这样的表格; <form action="/user/create" method="post"> 并在我的UserController; create: function (req, res, next) { User.create(req.params.all()).done(function (err, user) { if ( err ) { return next(err); } else { res.json(user); } }); }, 也; 我检查req.params,因为它应该是,但完成()函数永远不会调用和POST请求挂在客户端。

在Waterline ORM中指定属性的长度参数

如何在水线可以指定types说十元(10,2)的货币? 我可以看到,我们可以给它一个小数types,但是这将使用默认的长度信息 – 我们如何限制字段的大小? 我明白一些数据库不会支持长度等,但这并不意味着我们不能让它被指定为那些做的。

Sails.js与护照http承载身份validation不起作用

我使用护照(本地和持证人策略)多种策略。 本地策略的login工作。 我们在login后生成一个令牌,令牌存储在redis中。 在初始login后,只要在redis中find令牌,我就想使用不带会话的承载authentication。 如果我发送正确的令牌,我可以查询redis和获取用户数据,但节点仍然发送403响应,而不是我期望的200状态码。 如果在Redis中找不到标记,则导致以下错误导致崩溃: /workspace/rs-api-sails/node_modules/redis/index.js:587 throw err; ^ Error: Can't set headers after they are sent. at ServerResponse.OutgoingMessage.setHeader (http.js:691:11) at ServerResponse.res.setHeader (/workspace/rs-api-sails/node_modules/sails/node_modules/express/node_modules/connect/lib/patch.js:59:22) at allFailed (/workspace/rs-api-sails/node_modules/passport/lib/passport/middleware/authenticate.js:153:13) at attempt (/workspace/rs-api-sails/node_modules/passport/lib/passport/middleware/authenticate.js:232:28) at Context.delegate.fail (/workspace/rs-api-sails/node_modules/passport/lib/passport/middleware/authenticate.js:227:9) at Context.actions.fail (/workspace/rs-api-sails/node_modules/passport/lib/passport/context/http/actions.js:35:22) at verified (/workspace/rs-api-sails/node_modules/passport-http-bearer/lib/strategy.js:125:19) at /workspace/rs-api-sails/config/bootstrap.js:40:18 at try_callback (/workspace/rs-api-sails/node_modules/redis/index.js:580:9) at RedisClient.return_reply (/workspace/rs-api-sails/node_modules/redis/index.js:670:13) 10 Dec 13:25:15 – [nodemon] app crashed – […]

Sailsjs在EJS模板中没有CSS

我试图呈现一个模板使用: res.render('template', data, function(err, html) { … }); 在模板中我有: <link rel="stylesheet" type="text/css" href="/styles/style.css"> 它不工作(检查与红色背景)。 相同的标记在取决于views / layout.ejs的页面中工作,即使用: <link rel="stylesheet" type="text/css" href="/styles/style.css"> 我怎样才能解决这个问题(将style.css添加到ejs文件)? HTML <html> <head> <link rel="stylesheet" type="text/css" href="http://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="/styles/style.css"> </head> <body> … </body> </html>

MongoError:$ all需要数组

我正在使用sailsjs mongodb和node.js我得到错误在mongodb查询错误,请帮助! 我想要得到的结果符合$ all:[senderID,sendToID] 这是我在MongoDB中的文档“消息”。 { “用户”:[ “52ed09e1d015533c124015d5” “52ed4bc75ece1fb013fed7f5” ] “user_msgs”:[], “createdAt”:ISODate(“2014-02-04T11:59:53.220Z”), “updatedAt”:ISODate(“2014-02-04T11:59:53.220Z”), “_id”:ObjectID(“52f0d639b922c9142763c336”) } 现在我想查询 Message.find({users:{$ all:[msg.sender,msg.sendTo]}}) .done(函数(err,detail){ 如果(err){ 执行console.log(ERR) } else { console.log(detail)} }); 这会返回错误 {[MongoError:$ all需要数组] name:'MongoError'} 我正在遵循文档http://docs.mongodb.org/manual/reference/operator/query/all/,但仍然不知道是什么导致问题

找不到模块'sails'

我正在尝试运行Webstorm 7.0.3的sails应用程序。 这出现在我尝试在控制台日志中运行服务器时: module.js:340抛出err; ^ Error:在Module.require(module.js:364:15)的Function.Module._load(module.js:280:25)处的Function.Module._resolveFilename(module.js:338:15)处找不到模块'sails' 17)在要求(module.js:380:17)在对象。 (module.js:474)在Module._compile(module.js:456:26)上的位置(C:\ Users ** \ projects \ WebstormProjects ** \ app.js:2:1) (module.js:497:10)在Module.runMain [as_onTimeout]的Function.Module._load(module.js:312:12)处的Module.load(module.js:356:32) 处理完成退出代码8 我安装了全球风帆。 我知道这是不工作,因为它无法find项目的本地“node_modules”目录中的sails模块。 如果再次安装'帆'本地它将工作。 但我不想… 有没有办法使它与全球安装帆? 谢谢!

使用SailsJS / Node,Mocha,Supertest进行authentication的会话存储

我有一个SailsJS设置,并使用Mocha / Supertest / Superagent组合来运行unit testing。 我search了四周,阅读supertest,现在它如何扩展superagent.agent('url')以存储会话和cookie。 我知道我/运动员/login和/运动员/当前路线正在工作,因为我可以使用邮差testing他们,他们返回正确的值。 然而,在testing时,我在login时获得了200个状态,但是404 /运动员/当前状态 这是我目前的工作: 1.摩卡testinglogin和validation用户login会话 var should = require('should'), assert = require('assert'), request = require('supertest'); it('/athlete/login should return 200 and athlete on success', function (done){ var athleteStub = AthleteStub(), setPassword = athleteStub.password; Athlete.create(athleteStub, function(err, newAthlete) { var user = request.agent(sails.express.app); user .post('/athlete/login') .send({ 'email': athleteStub.email, 'password': setPassword }) […]

Sailsjs:为什么*返回*使用或不在下面的代码?

我不清楚为什么在下面的代码中使用return 。 请说明何时应该使用或不应使用或要求退回答复。 update: function(req, res) { var id = req.param('id'); User .update(id, req.params.all()) .exec(function(err, users) { if(err) return res.json(err, 400); var user = users[0]; console.log('ID', user.id); User .findOne(user.id) .populate('profile') .exec(function (err, user){ if (err) return res.json(err, 400); res.json(user, 201); }); }); },