如何在sails.js 0.10中接收套接字事件?

我有一个名为Collection.js的模型,它看起来像这样: module.exports = { attributes: { title: { type: 'string', required: true }, description: { type: 'text', required: false }, sessions: { collection: 'session', via: 'collection' } } } 据我所知,这个消息是在创build新模型实例时通过套接字发送的,可以通过模型名称获得。 所以我已经在我的app.coffee文件中进行了app.coffee : socket = io.connect() socket.on 'collection', -> console.log 'hey' 我已经validation了“环境”的作用,因为我得到了socket.on 'connect'. -> console.log 'hey'通知socket.on 'connect'. -> console.log 'hey' socket.on 'connect'. -> console.log 'hey' ,但我没有得到任何模型事件,如创build或破坏logging! […]

javascript / node.js在visual studio 2013中的智能感知/ resharper有问题

Visual Studio 2013与: Resharper 8.2 Node.js工具 networking要领 从我从node.js工具网站收集到的信息,我应该能够获得智能感知。 然而,当在node.js项目中编辑javascript时,我得到了一个奇怪的智能感知,它暗示着各种不相关的东西。 它没有任何有用的intellisense为节点,像autocompletes require required ,这是非常烦人的,因为我必须点击逃生来阻止它改变它,我有时会错过它,这会导致运行时错误。 它为我在项目中的自己的代码提供了智能感知,但是却很less。 我读了这个,有一些希望: https://nodejstools.codeplex.com/workitem/562 但是,如果我禁用JSR文件的Resharper intellisense,而不是它推迟到Visual Studio / node.js工具,我根本没有任何intellisense。 我现在正在做这件事,因为没有什么比有required问题更好。 在Google或StackOverflow中找不到有用的东西。

两个数组与1000万个项目的差异 – _.difference太慢了

我有两个数组与用户ID,我想检查其中的不同项目。 arr1 = [123, 456, 789]; arr2 = [123, 456, 789, 098]; 问题是:这些数组可能有10或2000万个项目。 我正在尝试与underscore.difference()但它需要10分钟才能完成。 有没有更快的方法来做到这一点?

passportjs LocalStrategy允许比默认的用户名和密码更多的参数吗?

我是新来的JavaScript,节点和passportjs。 对不起如果这是不正确的。 我想在我的护照本地策略中使用3个参数: 用户名,电子邮件,密码 。 可能吗? 如果这样怎么样? 根据passportjs的说法:“默认情况下,LocalStrategy希望能够在名为username和password的参数中find凭据,如果你的站点更喜欢以不同的方式命名这些字段,可以使用选项来改变默认值。 但是我可以添加更多参数吗? 我试过这个: passport.use('local-signup', new LocalStrategy({ // by default, local strategy uses username and password, we will override with email usernameField : 'username', emailField : 'email', passwordField : 'password', passReqToCallback : true // allows us to pass back the entire request to the callback }, function(req, username, email, […]

Node.js,Ajax发送和接收Json

使用Ajax,我试图只发送Json数据到节点服务器,不涉及处理,只是在发送时发出警报,并在收到时发出警报: 这是我的html5:简单的button,带有onclick函数来触发函数使用ajax调用 <!DOCTYPE HTML> <html> <head> <script> function send() { //alert("Hello World"); $.ajax ({ type: "post", url: "http://localhost:8000", dataType: "json", contentType: "application/json; charset=UTF-8", data: JSON.stringify({name: "Dennis", address: {city: "Dub", country: "IE"}}) }).done(function ( data ) {alert("ajax callback response:" + data); }); </script> </head> <body> <button onclick="send()">Click Me!</button> </body> </html> 这是我的节点服务器的一部分:用于创build服务器并侦听某些操作 var port = 8000; var […]

发送推送通知后,应用程序卡住“inputPEM密码”

我正在使用apn发送从node.js应用程序到苹果的推送通知。 我的代码: // send to development**** var dev_cert_path = path.join(__dirname, '..', 'cert.pem'); var dev_key_path = path.join(__dirname, '..', 'key.pem'); var devOptions = { "gateway": "gateway.sandbox.push.apple.com" , "cert": dev_cert_path, "key": dev_key_path, "passphrase":'XXXXX'}; var devApnConnection = new apn.Connection(devOptions) , devMyDevice = new apn.Device(token) , devNote = new apn.Notification(); devNote.expiry = Math.floor(Date.now() / 1000) + 3600; // Expires 1 […]

Node.js – crypto.js – PFX头太长

我正试图从一个文件加载一个PFX和口令,以便我可以做一个HTTPS请求。 在我开始之前,我已经知道PFX是好的,这不是问题。 我正在做以下事情: config.options.pfx = fs.readFileSync('file.pfx'); config.options.passphrase = 'passphrase'; 我正在把我的select权交给代理人。 config.options.agent = new https.Agent(options); 然后我尝试build立rquest,我得到以下错误: crypto.js:143 c.context.loadPKCS12(pfx, passphrase); ^ Error: header too long at Object.exports.createCredentials (crypto.js:143:17) at Object.exports.connect (tls.js:1334:27) at Agent.createConnection (https.js:79:14) at Agent.createSocket (http.js:1293:16) at Agent.addRequest (http.js:1269:23) at new ClientRequest (http.js:1416:16) at Object.exports.request (https.js:123:10) 我从一个工作仓库中检查了这一点,我知道这是作者的原作者。 出于某种原因,我的设置不运行它,虽然。

Node.js,Express和dependency injection

我在一个node.js项目的早期阶段,我正在寻求改善整个应用程序的组织。 在过去,我使用了Symfony2(PHP),现在我在Angular中编写了很多代码,这两个代码都非常依赖DI。 所以,我非常喜欢在我的node.js项目中应用相同的原则。 我知道像Rewire这样的软件包的存在,但现在我想尝试DI方法。 问题是, 如何达到一个平衡,以保持轻量级的感觉,使节点与一个经过良好testing的dependency injection的应用程序的坚实 (我知道,经过充分testing是什么给了坚实;-))。 节点模块 其中一个问题就是如何pipe理外部模块,如果某个对象需要fs模块怎么办? 正如Vojta Jina(来自AngularJS)在这篇文章中所述 : 所以现在最适合我的方式就是这样的:模块是无状态的。 它们只包含类/函数/常量的定义。 所以,我想我必须注入一切: function Foo(fs) { this.fs = fs; } Foo.prototype.doSomething: function () { // this.fs… }; module.exports = Foo; 某处: var fs = require('fs'); var Foo = require('./Foo'); var foo = new Foo(fs); foo.doSomething(); performance 由于Express使用apply()来调用处理程序,所以上下文丢失,我们不能使用this 。 所以我们留下这些: // foo.js function […]

在node.js中的mysql查询,检查是否找不到匹配

我如何检查在mysql(node.js)中找不到匹配项? mysql.query("select * from table1 where name = 'abcd'", function(error, result, field) { if(error) { exist(error); //No error } else if(result) { console.log(result); //displays '[]' exist(null, result); } else { exist(null, null); //It is never execute } }); function exist(error, result) { if(result) console.log("Test:"+result); //Executed and displays 'Test:' } 我的数据库不包含名称='abcd'。 那么,如何检查查询是否不匹配呢?

最小的工作聚合物的例子

我一直在试图获得一个极其微小的网页使用Polymer来简单地在浏览器中呈现 – 我在服务器端使用Node / ExpressJS / Jade设置。 我的代码和Polymer文档附带的例子非常接近,我想我错过了一些非常简单的东西。 我正在使用Chrome M35。 在服务器上,我已经安装了所有聚合物的东西(平台,核心和纸)使用鲍尔,我已经映射bower_components静态/static app.use('/static', express.static(path.join(process.cwd(), 'bower_components'))) 我已经validation了我的服务器可以正确地为http://localhost:3000/static/paper-button/paper-button.html – 这将返回所需文件的内容。 该页面提供的HTML是这样的: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="/static/platform/platform.js"></script> <title>Authenticate</title> <link rel="import" src="/static/paper-button/paper-button.html"> <style> body { font-family: 'Helvetica Neue'; margin: 0; padding: 24px; user-select: none; transform: translateZ(0); } paper-button { margin: 1em; width: 10em; } paper-button.colored { color: […]