Tag: sails.js

Sailsjs Socket IO

我是SailsJs和Socket IO的新手。 我想在Sailsjs中执行下面的Socket IO示例。 在服务器端,我需要执行下面的代码。 但是我不知道在哪里放置这段代码。 var io = require('socket.io')。listen(80); io.sockets.on('连接',函数(套接字){ socket.emit('news',{hello:'world'}); socket.on('我的其他事件',函数(数据){ 的console.log(数据); }); }); 我知道,我可以把它放在控制器的function,但它会添加监听器,我不想要的每个请求。 客户端: var socket = io.connect('http:// localhost'); socket.on('news',function(data){ 的console.log(数据); socket.emit('my other event',{my:'data'}); }); 向我展示将服务器端代码放在sailsjs的哪个位置,并帮助我执行上面的socketIO示例。

Sails.js + Passport.js获取当前login的用户

我有一个我正在使用的sails应用程序,我正在使用passport.js进行用户身份validation。 我有login工作,以及保护我的网页,所有系统的政策。 在我的一个页面上,用户正在input信息,所以我需要获取当前login用户的ID。 我为此苦苦挣扎,但最终还是采用了一条路线 在控制器中 $scope.$on('sailsSocket:connect', function(ev, data) { sailsSocket.get( '/get_user', {}, function(response) { $scope.team_id = response.user; sailsSocket.get( '/status_update?sort=createdAt%20ASC&team_id='+$scope.team_id, {}, function(response) { $scope.updates = response; $log.debug('sailsSocket::/status_update', response); }); }); }); 和路由callback get_user: function(req, res) { res.json({user:req.session.passport.user}); }, 这似乎工作正常,但我有几个问题。 a)这是正确的方法吗? 通过路线将这些信息提供给控制器? b)嵌套套接字调用就像这个好习惯? 我是新来的这个堆栈,仍然感觉我通过它的方式,所以任何反馈,非常感激。

在使用模式数据库时,sails.js如何处理数据库迁移?

我目前使用postgresql的数据库。 我来自更多的rails背景,我们创build一个迁移,然后运行rake db:migrate来迁移数据库。 我如何在sails.js做类似的sails.js ? 我需要吗?

如何获取通过sails.js中的窗体发送的数组/对象(使用enctype multipart / form-data)

我在我的表格中嵌套信息以匹配我的模型,这大大简化了后端的事情,但我无法find如何在Sails.js中获取数组或对象(或两者的组合) 假设我有这样的表单 注意:完全需要支持“multipart / form-data”。 <form action="/articles" method="post" enctype="multipart/form-data"> <input type="file" name="status" value="published"> <!– Entry 0 –> <input(type="text" name="entries[0][title]" value="Entry 1") <input(type="text" name="entries[0][content]" value="Entry 1 Content…") <!– Entry 1 –> <input(type="text" name="entries[1][title]" value="Entry 2") <input(type="text" name="entries[1][content]" value="Entry 2 Content…") <!– images –> <input type="file" name="images[]"> <input type="file" name="images[]"> </form> 我期待在req.params.all()obj中得到这样的对象 { status: 'published', entries: [ […]

在web服务器之外使用模型来启动js

我想创build一个cli来创buildpipe理员用户我有在api / models / User.js中的用户模型设置 并在cli上 var User, program; program = require("commander"); User = require("../api/models/User"); program.version("0.0.1"); program.command("create_user").description("Create a user into database").action(function() { return console.log(User); }); program.parse(process.argv); 用户日志是: User = { attributes: { username: "string", password: "string", } }; 并没有可用的水线方法。

是否有可能在sails中禁用蓝图

是否可以禁用某些控制器在帆的蓝图? 我创build了一个控制器,我想使它只能使用我在routes.js中提供的自定义路由访问,但是当我喜欢控制器/操作时,我仍然可以看到该页面。 在控制器中,我定义了_config: {blueprints: {action: false, rest: false, shortcuts: false }} 谢谢

Sails.js得到很多关联计数

我有一个模型(用户)与另一个模型(电话)有关联。 这个协会是多对多的。 以下呼叫内置到Sails中,并允许我获取特定用户的所有电话logging: GET – /user/:userId/phones 我希望能够在那个电话上实现分页,但是不知道如何获得结果的总数。 我试图覆盖蓝图find.js和/或findOne.js为了返回计数,但上面的调用似乎并没有通过该逻辑运行。

如何设置一个高需求的应用程序的node.js堆栈?

我目前正在使用超过25000人使用的Node.js堆栈应用程序,我们特别使用Sails.js框架,并且我们得到了MongoDB应用程序运行在具有30GB RAM的EC2实例,databse运行在Mongolab上基于AWS的集群位于EC2所在的同一区域。 我们甚至有一个1.5GB的Elastic Cache Redis实例存储。 所以我们面临的主要和巨大的问题是延迟 。 当我们达到请求应用程序并发用户的高峰时,我们得到了多个超时和启动应用程序达到超过7.5GB的内存,对HTTP的HTTP请求花费超过15秒(这是不可接受的),甚至当得到502和504响应nginx的。 我可以注意到Mongo写操作是我们的主要延迟问题,但是即使有需求峰值,GET请求也需要很长时间。 我无法访问生产服务器,我只有pm2(这实际上很棒)和New Relic警报获得了一个keymetrics监控工具。 所以,我想知道一些应对这些问题的路线图,也许应该提供更详细的信息,到目前为止,我可以说没有太多的用户时,应用程序似乎是稳定的。 什么是主要因素和设置要考虑? 到目前为止,我知道我应该做什么 ,但是我不确定细节和方式。 恕我直言: 尽可能caching。 延迟MongoDB写操作。 分离Mongo数据库,写入需求较高。 虚拟化? 调整节点设置。 在优化代码,我已经发布了另一个stackoverflow问题与我正在遵循的代码模式的一个例子。 你对生产应用有什么build议和意见?

node.js:有没有办法将HTML放入i18n-node JSON转换文件?

这个问题说明了一切。 如果我把HTML直接放入(JSON格式)的翻译文件中,像这样: "test_html" : "click <a href='http://stackoverflow.com/'>here</a>", 我在我的HTML中得到这个: click &lt;a href='http://stackoverflow.com/'&gt;here&lt;/a&gt; 我也尝试在我的翻译文件中结合这个: "test_html_placeholder" : "click %shere%s", 有了这个在我的HTML: <%= __('test_html_placeholder', '<a href="http://stackoverflow.com">', '</a>') %> 但得到了类似的结果。 我唯一能工作的就是这种笨拙: "test_html_pre" : "click ", "test_html_link" : "here", "test_html_post" : ".", 有了这个: <%= __('test_html_pre') %><a href="http://stackoverflow.com"><%= __('test_html_link') %></a><%= __('test_html_post') %> 但是这样做太麻烦了,几乎不值得去做,而且在某些语言中的字顺序会迫使我在我的翻译文件中放一些空的string,而i18n-node似乎并不喜欢,因为它吐出了关键字属性)名称,当它遇到一个空string。 我也尝试在符号前使用“\”作为转义字符,但是当我解除帆(重新启动服务器)时,我得到了无效的JSON错误。 任何想法,解决方法? 我正在使用sails.js,这不是我的决定,但我坚持它,它与i18n节点。 这个项目当天晚些时候考虑使用另一个图书馆,但不是完全不可能。

MongoError:拓扑被破坏了sailsjs

当我尝试创build这个错误显示: 错误(E_UNKNOWN)::遇到一个意外错误MongoError:在Server.insert处破坏拓扑(/ Users / oscargallon / Documents / developer / sails / reyesmagoswebpae / node_modules / sails-mongo / node_modules / mongodb / node_modules / mongodb-core / lib /topologies/server.js:797:49) 这是我的模型 module.exports = { attributes: { name: { type: 'string', required: true }, email: { type: 'String', required: true }, description: { type: 'string', required: true }, […]