本地支持Node.js中的承诺

在当前版本的Node.js中是否有对promise的本地支持? Node.js使用V8引擎。 Chrome浏览器也使用这个JavaScript引擎,Chrome 32本身也支持Promise。 但我似乎无法承诺在Node.js中工作(本地)。 我已经尝试了在Chrome 32中的以下代码,它的工作原理。 var promise = new Promise(function(resolve, reject) { // do a thing, possibly async, then… if ( 1===1 /* everything turned out fine */) { resolve("Stuff worked!"); } else { reject(Error("It broke")); } }); promise.then(function( message ) { console.log( message ); }, function( err ) { console.log( err ); […]

使用Socket.io更新所有客户端?

是否有可能强制所有的客户端使用socket.io更新? 我已经尝试了以下,但是当新的客户端连接时似乎没有更新其他客户端: Serverside JavaScript: 我试图发送消息给所有的客户端,其中包含当前连接的用户数量,它正确地发送的用户数量….但客户端本身似乎并没有更新,直到页面被刷新。 我希望这是发生的实时。 var clients = 0; io.sockets.on('connection', function (socket) { ++clients; socket.emit('users_count', clients); socket.on('disconnect', function () { –clients; }); }); 客户端JavaScript: var socket = io.connect('http://localhost'); socket.on('connect', function(){ socket.on('users_count', function(data){ $('#client_count').text(data); console.log("Connection"); }); });

Eslint:如何在Node.js中禁用“意外的控制台语句”?

我使用了Sublime Text 3的eslint,并且正在编写gulpfile.js 。 /*eslint-env node*/ var gulp = require('gulp'); gulp.task('default', function(){ console.log('default task'); }); 但eslint不断显示错误:“错误:意外的控制台语句。(无控制台)” 我在这里find官方文档 ,但我仍然不知道如何禁用它。 /*eslint-env node*/ var gulp = require('gulp'); /*eslint no-console: 2*/ gulp.task('default', function(){ console.log('default task'); }); 也行不通。 我的崇高文本3插件:SublimeLinter和SublimeLinter-contrib-eslint。 **编辑**这是我的.eslintrc.js文件: module.exports = { "rules": { "no-console":0, "indent": [ 2, "tab" ], "quotes": [ 2, "single" ], "linebreak-style": [ 2, "unix" […]

Node.js:Gzip压缩?

我发现Node.js没有gzip压缩,并且没有模块可以执行gzip压缩吗? 任何人都可以使用一个没有压缩的Web服务器? 我在这里错过了什么? 我是否应该尝试将algorithm引入JavaScript以供服务器端使用?

AngularJS – 服务器端渲染

如您所知,AirBnb开放了Rendr( http://nerds.airbnb.com/weve-open-sourced-rendr ),可以启用服务器端的Backbone应用程序。 这很酷,因为可以在服务器上运行模板渲染的第一个“迭代”,客户端将获得完整的HTML文档以及整个JS应用程序。 这大大减less了显示时间,并可以摆脱其他服务器端模板系统。 那么, 有人设法用jsdom或ZombieJS呈现AngularJS ? Node.js上的这些dom / browser模拟器在理论上应该足够用于简单的服务器端Angular模板,但是我发现使用Google进行search的结果并不是很确定。

用Node.js和MongoDB存储密码

我正在寻找一些如何使用node.js和mongodb安全地存储密码和其他敏感数据的例子。 我希望一切都使用一个独特的盐,我将存储在mongo文件中的哈希旁边。 对于身份validation,我只需要salt和encryptioninput,并将其匹配到存储的散列? 我是否需要解密这些数据?如果有,我该怎么做? 私人密钥,甚至腌制方法如何安全地存储在服务器上? 我听说AES和Blowfish都是很好的select,我应该用什么? 如何devise这个例子将是非常有帮助的! 谢谢!

AngularJSauthentication+ RESTful API

用于validation/(重新)路由的angular度+ RESTful客户端通信(带有API) 这已经在几个不同的问题和几个不同的教程中有所涉及,但是我所遇到的所有以前的资源并不完全相同。 在一个坚果壳里,我需要 通过POST从http://client.foologin到http://api.foo/login 为提供logout路由的用户提供“login”GUI /组件状态 当用户注销/注销时,能够“更新”用户界面。 这是最令人沮丧的 保护我的路线,以检查身份validation状态(他们是否需要它),并相应地将用户redirect到login页面 我的问题是 每当我导航到一个不同的页面,我需要打电话给api.foo/status以确定用户是否login。(ATM我使用快递的路线)这会导致一个呃,Angular确定的东西ng-show="user.is_authenticated" 当我成功login/注销时,我需要刷新页面(我不想这样做),以填充{{user.first_name}}类的东西,或者在注销的情况下,清空该值出。 // Sample response from `/status` if successful { customer: {…}, is_authenticated: true, authentication_timeout: 1376959033, … } 我试过了 http://witoldsz.github.io/angular-http-auth/ 1 http://www.frederiknakstad.com/authentication-in-single-page-applications-with-angular-js/ 2 https://github.com/mgonto/restangular (对于我的生活,我无法弄清楚如何使用post data POST ,而不是query params 。文档在这个问题上什么也没有。 为什么我觉得我正在失去理智 似乎每个教程都依赖于一些数据库(大量Mongo,Couch,PHP + MySQL,无限广告)解决scheme,而且没有一个纯粹依靠与RESTful API进行通信来保持login状态。 一旦login,更多的POST / GET与withCredentials:true一起发送withCredentials:true ,所以这不是问题 我找不到任何做Angular + REST + Auth的例子/教程/回购,没有后端语言。 […]

什么是npm init中的“入口点”?

我有一个空的新项目,当我运行npm初始化我有一个问题的列表回答,例如: name: (karma) version: (1.0.0) description:my project description entry point: (index.js) 我真的很困惑那个说“入口点”,这应该是我的index.html文件或我的app.js或是别的东西?

必须res.end()与node.js快速调用?

我有几个Express应用程序,并且我看到在某些模块中, res.end()在请求处理程序(在res.send或res.json )的末尾被调用,而在另一些模块中则不被调用。 例如: app.get('/test', function(req, res) { res.send('Test', 200); }); 要么: app.get('/test', function(req, res) { res.send('Test', 200); res.end(); }); 这两种情况都有效,但是当我运行很多请求时,我担心泄漏或者文件描述符或者类似的东西。 哪一个更“正确”?

如何与node.js一起使用jQuery ajax调用

这与使用Node.js的Stream数据类似,但我不觉得这个问题得到了充分的回答。 我试图使用jQuery ajax调用(get,load,getJSON)在页面和node.js服务器之间传输数据。 我可以从我的浏览器中打开地址,看到“Hello World!”,但是当我从我的页面尝试这个时,它失败了,并且显示我没有回应我设置了一个简单的testing页面和hello世界的例子来testing这个: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>get test</title> </head> <body> <h1>Get Test</h1> <div id="test"></div> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script> <script> $(document).ready(function() { //alert($('h1').length); $('#test').load('http://192.168.1.103:8124/'); //$.get('http://192.168.1.103:8124/', function(data) { // alert(data); //}); }); </script> </body> </html> 和 var http = require('http'); http.createServer(function (req, res) { console.log('request received'); res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(8124);