Articles of sails.js

sails-auth模块给出“不能读取属性'loadStrategies'的未定义的”

我已经安装了npm模块,并解除我的应用程序,它会给出以下错误。 我无法在GitHub问题或Wiki中find任何合适的解决scheme。 模块在这里 。 我已经在我的config目录中包含了passport.js和auth.js文件,正如他们所指出的那样。 $ sails lift info: Starting app… /home/me/Documents/projects/margin/node_modules/sails-auth/api/hooks/sails-auth.js:4 sails.services.passport.loadStrategies(); ^ TypeError: Cannot read property 'loadStrategies' of undefined at Hook.initialize (/home/me/Documents/projects/margin/node_modules/sails-auth/api/hooks/sails-auth.js:4:30) at Hook.bound [as initialize] (/usr/local/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21) at /usr/local/lib/node_modules/sails/lib/hooks/index.js:75:14 at /usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:454:17 at /usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:444:17 at Array.forEach (native) at _each (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:46:24) at Immediate.taskComplete (/usr/local/lib/node_modules/sails/node_modules/async/lib/async.js:443:13) at processImmediate [as _immediateCallback] (timers.js:358:17)

使用Google Compute Engine加载nodejs上的testing瓶颈

我无法弄清楚这个网站瓶颈的原因是什么,一旦有大约400个用户达到了非常糟糕的响应时间。 该网站位于Google计算引擎上,使用实例组进行networking负载平衡。 我们用sailjs创build了这个项目。 我一直在使用kubernetes,使用Google容器引擎进行负载testing,运行locust.py脚本。 其中一项testing的主要结果是: RPS : 30 Spawn rate: 5 p/s TOTALS USERS: 1000 AVG(res time): 27500!! (27,5 seconds) 响应时间最初是很好的,低于一秒,但是当它开始达到大约400个用户时,响应时间开始大量跳跃。 我已经testing了可能影响响应时间的明显因素,结果如下: 计算引擎实例(2 x standard-n2,200 GB磁盘,RAM:每个实例7.5 GB): Only about 20% cpu utilization used Outgoing network bytes: 340k bytes/sec Incoming network bytes: 190k bytes/sec Disk operations: 1 op/sec Memory: below 10% MySQL的: Max_used_connections : 41 (below […]

Sails.js + socket.io:从服务器发送消息到客户端

我试图build立一个系统与sails.js让服务器广播消息到一组客户端。 基本上: A组中的客户端向服务器发送AJAX请求。 服务器处理请求并通过套接字将消息发送给B组的所有客户端。 B组的客户端通过套接字接收消息并显示。 根据socket.io文档,我应该能够让B组中的客户端join一个“房间”,然后让服务器广播到特定的房间,但在客户端,预先存在的“套接字”不有方法“socket.join('房间')”。 所以,我试着给所有的客户发送一个独特的事件: socket.on("connect", function(){ console.log("Client Connected"); }); socket.on("my_event", function(data){ console.log("my_event received"); }); 这可以通过在服务器端执行“sails.io.sockets.emit(”my_event“,{…})”来正常工作,但是这不是将事件发送到每个客户端吗? 我可以使事件名称是唯一的,就像“my_event_000”带有一个ID来指定组,但是这仍然会不必要地将事件发送到每个客户端。 我应该使用“房间”吗? 如果是的话,怎么样?

用sails.js修改响应头来实现HSTS

我正在使用sails.js实现一个nodejs应用程序。 我希望我的用户只通过https进行通信。 所以为此,我需要按我的方式configuration我的服务器,以便每次响应都会添加一个标头“Strict-Transport-Security”,“max-age = 31536000”来告诉浏览器只与HSTS进行通信。 现在我怎么可以修改每个响应头,我将从风帆js.我搜查文件,但没有find任何帮助。

Restangular反应和ng重复

我最近开始学习使用restangular与我restfull API(帆)交谈的angularjs。 我偶然发现的问题是,在更改范围中的列表后,ng-repeat不会更新。 控制器: app.controller('UsersCtrl', ['UsersSvc', '$scope', function(UsersSvc, s) { UsersSvc.getList().then(function (new_users) { s.users = new_users; }) s.destroy = function (user) { user.remove().then(function () { s.users = _.without(s.users, user); }); } }]); 服务: app.factory('UsersSvc', function(Restangular) { return Restangular.all('users'); }); 模板: <div ng-controller="UsersCtrl"> … <tr ng-repeat"user in users"> <td>{{user.firstName}}</td> <td>{{user.lastName}} </td> <td>{{user.emailAddress}}</td> <td>{{user.age}}</td> </tr> … </div> […]

NodeJS最佳实践:stream量控制错误?

在Node.js中,我应该使用错误进行stream量控制,还是应该使用它们更像是exception? 我正在编写身份validation控制器和Sails.js中的一些unit testing,目前,我的注册方法检查是否存在具有相同用户名的用户。 如果一个用户已经存在用户名,我的模型方法用一个新的Error对象调用它的callback参数,如下所示: 模型: exists: function (options, cb) { User.findOne({ where: { username: typeof options === 'Object' && options.username ? options.username : options }, }).exec(function (err, user) { if (err) return cb(err); if (user) return cb(new Error("A user with that username already exists.")); cb(null, !!user); }); }, 控制器: User.exists(req.body.user.username, function (err, exists) { if […]

如何将post数据中的二进制数据存储到MongoDB中

我有我想要存储为一个bin数据项的小图像。 表单发布了,但是我不知道在控制器中做什么,所以如果我这样做,数据就被存储了。 我正在使用Sails.js和窗体传递数据作为“图像”与窗体有一个文件inputtypes。 var image = new Images; image.data = ???? image.save();

SailsJS:如何将JSON响应中的骆驼情况转换为蛇情况隐式?

有没有一种方法在sails.js将camelCase转换为snake_case同时返回使用res.ok(data)的JSON响应,其中数据是一个对象,没有明确的getters或setters在模型中做到这一点?

我如何在Waterline中执行COUNT和GROUP BY?

我想在Waterline中执行这个查询: SELECT priority, count(*) AS Num FROM Ticket GROUP BY priority 我不知道“countByName”函数如何工作,我没有find一个合适的例子或解释。 我也试着打电话给它 Model.query('SELECT …') 但是这只是返回undefined。

Sails JS Waterlinejoin了多个模型

您好我试图join多个表与填充方法,我GOOGLE了,找不到有效的方式做到这一点,我不想查询数据库多次build立的结果,是否有可能解决这个问题与帆版本“ 〜0.10.0-rc7“我正在build造一个有超过一百张桌子的大型项目。 var co = { adapter: 'someMysqlServer', migrate:'safe', autoCreatedAt: false, autoUpdatedAt: false, autoPK:false, attributes:{ id:{ type:"int", primaryKey: true, autoIncrement: true }, code:"string", priority :"int", co_group_c_id :"int", timezone_c_id :"int", lang_c_id :"int", currency_c_id :"int", name_used :"string", name_official :"string", co_tax_no :"int", co_vat_no :"int", co_vat_reg :"int", co_reg_record :"string", co_representative :"string", co_addresses:{ collection: "co_address", via: "co_user_id" }, } }; […]