小编Dee*_*psy的帖子

在redis中存储嵌套的javascript对象 - NodeJS

我最近在nodejs中从memcached切换到redis.我在node-memcached中喜欢的是我可以将整个javascript对象保存在内存中.可悲的是,我无法用redis做到这一点.例如,我得到以下对象:

var obj = {
    name: "Hello world!",
    author: "admin",
    user: {
        "yolololo" : {
             "id": "352asdsafaseww",
             "server": 5,
             "data" : {
                  x: 1, 
                  y: 1,
                  z: 50
             }
        },
        "yolol" : {
             "id": "358dsa",
             "server": 7
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用3rd-Eden/node-memcached,我可以这样做:

memcached.set("obj", obj, 12345, function(err) { });
Run Code Online (Sandbox Code Playgroud)

然后

memcached.get("obj", function(err, data) {
    console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

而且我会得到我保存的对象,就像它一样.

redis的问题是,如果我像这样保存对象:

redisclient.set("obj", obj, redis.print);
Run Code Online (Sandbox Code Playgroud)

当我得到价值时

redisclient.get("obj", function(err, data) {
    console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

输出只是包含的字符串[object Object].

是的我明白redis是基于文本的协议,它正在尝试做obj.toString(),但似乎memcached负责对象而redis没有.我以为我可以做到:

redisClient.set("obj", JSON.stringify(obj));
Run Code Online (Sandbox Code Playgroud)

但我不确定这是不是很好,因为会有疯狂的高I/O而且我不确定JSON obj->字符串是否会成为瓶颈(10k +请求/秒).

Memcached和Redis都将数据存储为字符串,但redis是否具有转换对象的内置功能?

javascript memcached object redis node.js

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

ng-include中的指令

我正在构建一个简单的angularjs应用程序,我正在尝试在没有页面刷新的情况下实现登录.

我在做什么

在init上,ng-include加载/ set/save./ set/save得到了<a fblogin>Login with Facebook</a>它.因此,当单击时,指令打开一个窗口,当窗口关闭时,它应该更改ng-include的src.

问题

当在ng-include中使用该指令时(ng-include src在init上有默认值),没有任何反应(控制台中没有错误,只是什么都没有),但是当我把指令放在ng-include之外它工作正常(参见下面的HTML代码)

HTML:

<div id="set-creator" ng-controller="SetCtrl">
    ........
    <div id="saveModal" class="reveal-modal" data-reveal>

        <a href fblogin>testCase</a> 

                // ^this is working
                //but if the directive is inside ng-include, it's not working

        <ng-include src="saveTemplate"></ng-include>
        <a class="close-reveal-modal">&#215;</a>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

指示:

App.directive('fblogin', function() {
return {
    transclude: false,
    link: function(scope, element, attrs) {

        element.click(function() {
            var win = window.open("/auth/facebook", 'popUpWindow', 'centerscreen=true');
            var intervalID = setInterval(function() {
                if (win.closed) {

                    scope.saveTemplate = '/set/continue';
                    scope.$apply();


                    clearInterval(intervalID);
                } …
Run Code Online (Sandbox Code Playgroud)

javascript templates angularjs angularjs-directive angularjs-ng-include

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

NodeJS,返回res.json是一种不好的做法

我正在使用NodeJS构建ExpressJS应用程序.我的问题是,如果我这样做有任何性能差异

app.get('/test', function(req, res) {
    fn(function(err, data) {
        if (err) {
            return res.json(400, {
                error: 1,
                msg: "some error"
            });
        }

        ///more code
    });
});
Run Code Online (Sandbox Code Playgroud)

代替

app.get('/test', function(req, res) {
    fn(function(err, data) {
        if (err) {
            res.json(400, {
                error: 1,
                msg: "some error"
            });
            return;
        }

        ///more code
    });
});
Run Code Online (Sandbox Code Playgroud)

返回res变量使服务器上的任何额外负载.两个代码都有效,只有第一个看起来更好,我保存1行.

node.js express

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

C#在游戏应用程序中按住键

我正在尝试创建一个C#应用程序,它将控制游戏.我试图做的是例如:按住A键150ms,按住左箭头500ms,依此类推.我经常搜索,我发现了以下代码.我的程序首先瞄准游戏,然后拿着钥匙.

I'm holding the keys this way:

Keyboard.HoldKey(Keys.Left);
Thread.sleep(500);
Keyboard.ReleaseKey(Keys.Left);
Run Code Online (Sandbox Code Playgroud)

这是Keyboard类:

public class Keyboard
 {
    public Keyboard()
    {
    }

    [StructLayout(LayoutKind.Explicit, Size = 28)]
    public struct Input
    {
        [FieldOffset(0)]
        public uint type;
        [FieldOffset(4)]
        public KeyboardInput ki;
    }

    public struct KeyboardInput
    {
        public ushort wVk;
        public ushort wScan;
        public uint dwFlags;
        public long time;
        public uint dwExtraInfo;
    }

    const int KEYEVENTF_KEYUP = 0x0002;
    const int INPUT_KEYBOARD = 1;

    [DllImport("user32.dll")]
    public static extern int SendInput(uint cInputs, ref Input inputs, int cbSize);

    [DllImport("user32.dll")]
    static …
Run Code Online (Sandbox Code Playgroud)

c# key fullscreen keyup

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

将文件附加到nodejs中的zip

我正在制作一个应用程序,您可以在其中编辑文件,它应该将编辑后的文件附加到 zip 存档中并使其可下载。它应该是跨平台的(Windows 和 Linux)。

我的目标是以编程方式生成编辑过的文件并将其附加到静态存档(始终相同,大约 3-4MB,但大约 40-50 个文件)。

我查看了以下有关如何在 node.js 中压缩档案的帖子,但是Eliseo Soto答案取决于操作系统。

我还找到了daraosn/ node-zip,但据我所知,它无法在不重新制作的情况下将文件附加到存档中。

关于如何在不为每个请求从头开始重建整个档案的情况下完成我的目标的任何建议?

performance zip append archive node.js

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

React-native 变换风格保留 3d

我正在尝试在react-native 中重新创建这个3D 动画。一切都很好,但问题是react-native没有transform-style: preserve-3d. 是否有任何替代方案/填充,或者我如何在不使用此属性的情况下实现我的目标?

javascript css transform react-native preserve-3d

5
推荐指数
0
解决办法
1291
查看次数

表达式:序列无序

我试图找到2个字符串之间的交集。我正在使用以下代码:

std::string a = "asd", b = "afd";

std::string intersect;
std::set_intersection(a.begin(), a.end(), b.begin(), b.end(), std::back_inserter(intersect));
Run Code Online (Sandbox Code Playgroud)

它编译成功,但是在运行该程序后,即时崩溃并显示以下错误:

在此处输入图片说明

有什么建议导致此问题吗?

c++ crash intersection std

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

用c#重复控制

我已经进入网络很长时间了,但现在我应该做一个小小的c#项目,我想知道如何重复这样做:

在此输入图像描述

在网上,我可以做

<div id="holder">
    <div class="item"></div>
    <div class="item"></div>
    <div class="item"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

甚至动态地添加它:

var items = [{}, {}, {}, {}];
for ( var i in items ) {
     $("#holder").append("<div class=\"item\"></div>");
}
Run Code Online (Sandbox Code Playgroud)

并渲染数组中表示的项目.

我的实际问题是如何使用完全用户控制?

c# windows custom-controls winforms windows-applications

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

隐藏图像,直到它们被加载

我得到了一个jQuery脚本,它在某个时间间隔将数据附加到"holder".数据如下所示:

<div class="item-box etc etc"> <img src="data.png"> </div>
Run Code Online (Sandbox Code Playgroud)

我一次加载50张图片,我的目标是在fadeIn加载每张图片时制作它们.

我尝试过以下方法:

parentDiv.on("load", "img", function() {
    $(this).parent().fadeIn(500);
});
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/3ESUm/2/

但似乎该on方法没有loadready方法.我没有想法了.

javascript jquery html5 fadein image-loading

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

React/reflux如何进行正确的异步调用

我最近开始学习ReactJS,但我对异步调用感到困惑.

假设我有一个带有用户/通过字段和登录按钮的登录页面.组件看起来像:

var Login = React.createClass({

    getInitialState: function() {
        return {
            isLoggedIn: AuthStore.isLoggedIn()
        };
    },

    onLoginChange: function(loginState) {
        this.setState({
            isLoggedIn: loginState
        });
    },

    componentWillMount: function() {
        this.subscribe = AuthStore.listen(this.onLoginChange);
    },

    componentWillUnmount: function() {
        this.subscribe();
    },

    login: function(event) {
        event.preventDefault();
        var username = React.findDOMNode(this.refs.email).value;
        var password = React.findDOMNode(this.refs.password).value;
        AuthService.login(username, password).error(function(error) {
            console.log(error);
        });
    },

    render: function() {

        return (
                <form role="form">
                    <input type="text" ref="email" className="form-control" id="username" placeholder="Username" />
                    <input type="password" className="form-control" id="password" ref="password" placeholder="Password" />
                    <button type="submit" className="btn btn-default" onClick={this.login}>Submit</button>
                </form> …
Run Code Online (Sandbox Code Playgroud)

javascript asynchronous reactjs react-jsx refluxjs

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