小编vjk*_*005的帖子

如何在我的简单Express应用程序中使用Node.js群集?

- 我构建了一个简单的应用程序,从Redis数据库中提取数据(50项)并将其抛出到localhost.我做了一个ApacheBench(c = 100,n = 50000),我在双核T2080 @ 1.73GHz(我的6 yo笔记本电脑)上得到了半正常的150请求/秒,但是proc使用非常令人失望图所示: 在此输入图像描述

只使用一个核心,这是根据Node中的设计,但我认为如果我可以使用Node.js集群,我几乎可以将我的请求/秒加倍到~300,甚至更多.我摆弄了很多但我无法弄清楚如何把这里给出代码用于我的应用程序,如下所示:

var 
    express = require( 'express' ),
    app     = express.createServer(),
    redis   = require( 'redis' ).createClient();

app.configure( function() {
    app.set( 'view options', { layout: false } );
    app.set( 'view engine', 'jade' );
    app.set( 'views', __dirname + '/views' );
    app.use( express.bodyParser() );
} );

function log( what ) { console.log( what ); }

app.get( '/', function( req, res ) {
    redis.lrange( 'items', 0, 50, function( err, items ) { …
Run Code Online (Sandbox Code Playgroud)

javascript cluster-computing redis node.js express

27
推荐指数
1
解决办法
1万
查看次数

使用Python使用Tumblr API时无法获得OAuth"请求令牌"

到目前为止,我一直在使用库来处理OAuth,但最近我一直在深入挖掘,试图理解底层的OAuth流程.目前,我正在尝试使用OAuth 1.0a使用以下简单代码连接到Tumblr API v2:

import urllib, urllib2, time, random, hmac, base64, hashlib

def makenonce():
    random_number = ''.join( str( random.randint( 0, 9 ) ) for _ in range( 40 ) )
    m = hashlib.md5( str( time.time() ) + str( random_number ) )
    return m.hexdigest()

def encodeparams(s):
    return urllib.quote( str( s ), safe='~' )

# Actual key and secret from a test app created using a dummy Tumblr account
consumer_key = '97oAujQhSaQNv4XDXzCjdZlOxwNyhobmDwmueJBCHWsFFsW7Ly'
consumer_secret = '5q1dpF659SOgSUb0Eo52aAyoud8N8QOuJu6enCG92aDR6WoMlf'

#oauth URLs
request_tokenURL = 'http://www.tumblr.com/oauth/request_token' …
Run Code Online (Sandbox Code Playgroud)

python api oauth tumblr

5
推荐指数
1
解决办法
4515
查看次数

与Mongoose相比,MongoDB原生Node.js驱动程序的性能糟糕,我做错了什么?

我有一个简单的node/express应用程序需要将2个文档存储在示例MongoDB集合中(32-bit, localhost, Windows).我可以使用native driverMongoose ORM.

与本机驱动程序一起拆开我的应用程序.ApacheBench(3300请求,一次5个),整个事情超时......

Completed 330 requests
apr_pollset_poll: The timeout specified has expired (70007)
Run Code Online (Sandbox Code Playgroud)

通过Mongoose访问时,相同的MongoDB集合只需通过比较即可完成任务...

...
Completed 2970 requests
Completed 3300 requests
Finished 3300 requests
...
Requests per second:    244.49 [#/sec] (mean)
Time per request:       61.353 [ms] (mean)
Run Code Online (Sandbox Code Playgroud)

这是一个巨大的差异,显然我在使用本机驱动程序时做了一些非常错误的事情.这是两种方法的代码以及存储在DB中的数据.

只存储在DB中的两个文档:

{
    "_id": "51bmdft4a487e771411ce8ef",
    "name": "Gintoki",
    "email": "sakata@yorozuya.com",
    "friends": [ "Shinpachi", "Kagura", "Tsukuyo" ]
},
{
    "_id": "51388p50bed4dghy4308745d",
    "name": "Elizabeth",
    "email": "eli@ossan.io",
    "friends": [ "Katsura" ]
}
Run Code Online (Sandbox Code Playgroud)

使用Native MongoDB驱动程序: …

mongoose mongodb node.js

1
推荐指数
1
解决办法
5770
查看次数

Imgur通过客户端javascript上传,但不是node.js. 狼狈

这有效:

    $.post( 
        'http://api.imgur.com/2/upload.json', 
        { 
            key: 'dsfdwerwersf53534dfsfse3', 
            image: 'http://i.imgur.com/UH17u.png' 
        }, 
        function( data ) { console.log( data.upload.links.original ); }
    );
Run Code Online (Sandbox Code Playgroud)

当我在Chrome的控制台中运行时,imgur会立即向我发送上传图片的网址:http://i.imgur.com/KrHMY.png.优秀.

.

现在我在服务器端使用node.js尝试同样的事情,但它不起作用:

    var 
        express = require( 'express' )
    ,   app = express.createServer()
    ,   request = require( 'superagent' );


    app.get( '/', function( req, res ) {
        request
            .post( 'http://api.imgur.com/2/upload.json' )
            .send( { key: 'dsfdwerwersf53534dfsfse3', image: 'http://i.imgur.com/UH17u.png' } )
            .end( function( data ) {
                console.log( data.upload.links.original );
            });
    });

    app.listen( '8080' );
Run Code Online (Sandbox Code Playgroud)

当我运行node.js应用程序时,imgur会发回这个响应:

text: '{"error":{"message":"No API key was sent, and no …
Run Code Online (Sandbox Code Playgroud)

javascript jquery node.js imgur

0
推荐指数
1
解决办法
971
查看次数