小编Pet*_*ter的帖子

按键排序JavaScript对象

我需要按键对JavaScript对象进行排序.

因此如下:

{ 'b' : 'asdsad', 'c' : 'masdas', 'a' : 'dsfdsfsdf' }
Run Code Online (Sandbox Code Playgroud)

会成为:

{ 'a' : 'dsfdsfsdf', 'b' : 'asdsad', 'c' : 'masdas' }
Run Code Online (Sandbox Code Playgroud)

javascript sorting

456
推荐指数
21
解决办法
47万
查看次数

从Razor View-MVC3 ASP.NET中的Web.config访问键值

如何在Razor视图中从web.config访问键值.

这是我web.config在Web项目的根级别.

 <appSettings>
   <add key="myKey" value="MyValue"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

我想在Razor视图中使用密钥.

谢谢.

asp.net-mvc-3

183
推荐指数
3
解决办法
11万
查看次数

如何检查Javascript对象

如何在警报框中检查对象?通常警告对象只会抛出节点名称:

alert(document);
Run Code Online (Sandbox Code Playgroud)

但我想在警告框中获取对象的属性和方法.如果可能,我该如何实现此功能?或者还有其他建议吗?

特别是,我正在寻找一个生产环境的解决方案,其中console.log和Firebug不可用.

javascript object inspect

96
推荐指数
7
解决办法
10万
查看次数

如何在Vim中切换命令和插入模式?

我刚开始使用Vim作为IDE.我现在使用它作为测试编辑器一段时间了,所以我不必经常进入命令模式.但是,既然我用Java编程,我必须进入命令模式来制作文件,编译/运行它......等等.

问题是:我需要一种在两种模式之间切换的好方法.

我在网上看了一下,它说<Esc>关键应该这样做,但这对我不起作用(也许这不适用于gVim?我不知道为什么.)

CTRLO每次都要按下指令模式; 转义键在该模式下工作......它将我带回插入模式.但在命令模式和插入模式之间切换是否有更好或更简单的方法?

vim command insert

79
推荐指数
5
解决办法
20万
查看次数

为Web应用程序使用自己的API - 使用OAuth2进行身份验证过程

概观

我目前正在为图像共享应用程序创建一个API,该应用程序将在网络上运行,并在将来的某个时间在移动设备上运行.我理解API构建的逻辑部分,但我仍然在努力满足自己对身份验证部分的要求.

因此,我的API必须是全世界都可访问的:具有访客访问权限(例如,未登录的人可以上载)以及注册用户.因此,当注册用户上传时,我显然希望将用户信息与请求一起发送,并通过我的数据库中的外键将该用户信息附加到上载的图像.


通过OAuth2进行身份验证 - 实施

我已经明白OAuth2是API身份验证的方法,所以我要实现这一点,但我真的很想知道如何处理我的情况.我想到使用client credentials授权并为我的Web应用程序生成组凭据,并让它向API发送请求,client secret以获取访问令牌并让用户执行操作.用户注册过程本身将使用此授权进行处理.

但是当用户注册并登录时呢?我现在如何处理身份验证?这是否需要另一笔补助金来接管?我在考虑在用户登录期间进行一些授权过程,以生成新的访问令牌.这种方法有误吗?


我需要帮助的是什么

我需要你的输入如何正确处理我的情况下的身份验证流程.这种双向身份验证过程可能不是我需要的,但它是我理解它的方式.我非常感谢您的支持.

authentication api-design credentials user-accounts oauth-2.0

16
推荐指数
3
解决办法
2654
查看次数

在Rails 4中优雅地处理InvalidAuthenticityToken异常

我刚刚将一个应用程序从Rails 3升级到Rails 4,我看到一堆InvalidAuthenticityToken异常弹出.挖掘它看起来我们的用户在我们的网站上打开多个长期标签是相当普遍的.所以我认为发生的事情是这样的:用户Alice有三个标签打开,她的会话到期.她重新登录其中一个选项卡,这会更新存储在其会话中的真实性令牌.然后她返回到其他一个打开的选项卡并尝试提交数据,但她从我们引发的InvalidAuthenticityToken错误中得到500错误.

为Alice做一些错误处理显然很好,所以她没有得到500错误.我想知道这种情况的最佳做法.从过期的标签处理Alice的提交有什么好方法?我不想让当前会话到期,因为从用户的角度来看这会非常烦人("我登录,你笨蛋!").理想情况下,我只是希望用户重新加载页面,这将导致表单中存在正确的真实性令牌.或者我应该做一些不同的事情,以便打开的长期标签注意到会话已过期并强制重新加载?从用户的角度来看,这可能是次优的,因为他们喜欢准备好该页面并且可以轻松访问以保持引用,这就是为什么他们首先在选项卡中将其打开.

session ruby-on-rails ruby-on-rails-4

15
推荐指数
3
解决办法
3386
查看次数

CasperJS:为什么我的网址加载时会更改为:空白?

我是PhantomJS/CasperJS的初学者.

我只是想开始一个会话并验证它没问题.

这是我的代码:

var casper = require('casper').create({
    verbose: true,
    logLevel: 'debug',
    pageSettings: {
        loadImages: false,
        loadPlugins: false,
        userAgent: 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0'
    }
});

casper.on('remote.message', function(msg) {
    this.echo('remote message caught: ' + msg);
});

casper.on("page.error", function(msg,trace) {
    this.echo("Page Error: " + msg, "ERROR");
});

casper.start('https://www.google.fr');

casper.then(function(){
    console.log('Page Loaded');
    this.test.assertTitle('Google', 'Welcome to Google');
});

casper.run();
Run Code Online (Sandbox Code Playgroud)

当我运行这个简单的脚本时,我得到:

C:\Users\Booky\Documents\nike_project>casperjs --ignore-ssl-errors=true --ssl-protocol=tlsv1 debug.js

C:\Users\Booky\Documents\nike_project>[info] [phantom] Starting...
[info] [phantom] Running suite: 3 steps
[debug] [phantom] opening url: …
Run Code Online (Sandbox Code Playgroud)

javascript phantomjs casperjs

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

猴子在另一个应用程序中修补Django应用程序

我们在Django 1.9应用程序中使用了第三方库.我们想要使用一些不在原始应用程序中的功能(针对MongoDB)来修改该应用程序.我们目前通过我们自己的原始库的fork来实现这一点,但是希望使更改更加正交,以便最终可以将它们拉到上游.

我们已经尝试在应用程序期间进行修补,config ready()但模型导入在此调用之前处理django.apps.registry.populate(),并在\__init__遭受困难时执行apps_ready == False.执行此操作的生命周期中最好的部分是什么?

class MongoConfig(AppConfig):
    def __init__(self, app_name, app_module):
        super(MongoConfig, self).__init__(app_name, app_module)

        for p in patches:
            patch(*p)

def patch(old, new):
    old_module, old_item = split_mod(old)
    new_module, new_item = split_mod(new)

    print('patching {0} with {1}'.format(old, new))

    old_module = import_module(old_module)
    new_module = import_module(new_module)
    setattr(old_module, old_item, getattr(new_module, new_item))
Run Code Online (Sandbox Code Playgroud)

python django django-models django-apps

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

在智能指针中使用标量和数组

如何在智能指针中同时使用标量和数组?

使用new和delete指针的旧方法:

int *p;

if (useScalar) {
    p = new int;
} else {
    p = new int[10];
}

if (useScalar) {
    delete p;
} else {
    delete[] p;
}
Run Code Online (Sandbox Code Playgroud)

在智能指针中,我必须为每个标量和数组指针使用2个指针:

std::unique_ptr<int> p1(new int);
std::unique_ptr<int[]> p2(new int[10]);
Run Code Online (Sandbox Code Playgroud)

如何减少仅使用1个智能指针?

c++ smart-pointers

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

如何在Node.js和Postgresql中找到最后一个插入ID?

向postgres发出"insert"语句时,如何获取最后在DB中插入的行的ID?

我试过"pg","pg-native","pg-connection"以及一堆其他软件包.对于每个包,我尝试了syncasync方法.我读了假装成包文档的东西.我检查了包的源代码.对于我的生活,我无法弄清楚这一点,我无法相信我是唯一一个面对这个问题的人.

任何见解将不胜感激.

postgresql node.js

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