小编use*_*521的帖子

collection.each()不会迭代模型

我试图迭代由集合提取的模型.

我有一段代码:

initialize: function() {
                this.collection = new UserCollection();
                this.collection.fetch();
                this.render();
            },

            renderCollection: function() {
                console.log("rendering collection");
                this.collection.each(function(index,model){
                    console.log("model"); 
                });
                console.log(this.collection);
            },

render: function() {
                this.template = _.template(template, {});
                this.$el.html(this.template);
                // some other stuff
                this.renderCollection();
}
Run Code Online (Sandbox Code Playgroud)

和结果:

rendering collection

d {models: Array[0], length: 0, _byId: Object, constructor: function, model: function…}
_byId: Object
_idAttr: "id"
length: 4
models: Array[4]
0: d
_changing: false
_events: Object
_pending: false
_previousAttributes: Object
attributes: Object
created: "2013-02-13 09:22:42"
id: "1"
modified: "2013-02-13 09:22:42"
role: "admin" …
Run Code Online (Sandbox Code Playgroud)

backbone.js

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

如何忽略钩子?

我有以下型号:

sequelize.define("User", {
    id: {
        type: DataTypes.INTEGER(11),
        autoIncrement: true,
        primaryKey: true
    },
    email: {
        type: DataTypes.STRING(255),
        allowNull: false,
        unique: true,
    },
    password: {
        type: DataTypes.STRING(60),
        allowNull: false
    },
    role: {
        type: DataTypes.STRING(32),
        allowNull: false,
        defaultValue: 'user',
    }
},{

    instanceMethods: {
        verifyPassword: function(password,cb) {
            crypt.compare(password,this.password,cb);
        },
    },

    hooks: {
        beforeUpdate: hashPassword,
        beforeCreate: hashPassword,
    }

});
Run Code Online (Sandbox Code Playgroud)

我想像这样创建它,同时忽略 beforeUpdate/Create 钩子:

User.create({ email: 'admin@render.ly', role: 'admin', password: '############' },['email','password','role']).done(function(err,admin){ ... })

如何?

sequelize.js

7
推荐指数
2
解决办法
2274
查看次数

如何在node.js中检查ASP.NET密码哈希

首先,我使用SHA256和.NET/Node.js读取了这个Hashing密码,它对我没有帮助.

我必须验证在node.js环境中在ASP.NET中创建的密码哈希.我被告知使用此算法生成密码:ASP.NET成员资格使用的默认哈希算法是什么?.

我有示例密码哈希和盐(第一行是密码,第二行是盐):

"Password": "jj/rf7OxXM263rPgvLan4M6Is7o=",
"PasswordSalt": "/Eju9rmaJp03e3+z1v5s+A==",
Run Code Online (Sandbox Code Playgroud)

我知道哈希算法是SHA1,我知道上面的哈希是为输入生成的test123.但是我不能重现散列算法来为此输入获取相同的散列.我尝试了什么:

Password = "jj/rf7OxXM263rPgvLan4M6Is7o="
PasswordSalt = "/Eju9rmaJp03e3+z1v5s+A=="
crypto = require("crypto")
sha1 = crypto.createHash("sha1")
PasswordSalt = new Buffer(PasswordSalt, 'base64').toString('utf8')
sha1.update(PasswordSalt+"test123", "utf8")
result = sha1.digest("base64")
console.log(Password)
console.log(result)
Run Code Online (Sandbox Code Playgroud)

结果是:

jj/rf7OxXM263rPgvLan4M6Is7o=
xIjxRod4+HVYzlHZ9xomGGGY6d8=
Run Code Online (Sandbox Code Playgroud)

我能够得到C#算法:

using System.IO;
using System;
using System.Text;
using System.Security.Cryptography;

class Program
{

    static string EncodePassword(string pass, string salt)
    {
        byte[] bytes = Encoding.Unicode.GetBytes(pass);
        byte[] src = Convert.FromBase64String(salt);
        byte[] dst = new byte[src.Length + bytes.Length];
        Buffer.BlockCopy(src, …
Run Code Online (Sandbox Code Playgroud)

asp.net algorithm hash node.js

6
推荐指数
2
解决办法
1767
查看次数

如何将SQL查询作为包含双引号的参数传递给psql

我在尝试着:

psql -c "COPY ( SELECT * FROM "Users" LIMIT 10 ) TO STDOUT WITH CSV HEADER" > out.csv
Run Code Online (Sandbox Code Playgroud)

但是,query("Users")中的双引号被删除,psql返回错误Relation users does not exist.我试图逃避这样的报价\"Users\".但他们仍然被删除.我能做什么?

postgresql macos bash psql

6
推荐指数
2
解决办法
2626
查看次数

heroku上的node.js web服务器 - 常量内存增长

我的应用程序在5个并行dynos上运行在heroku上.恒定负载为500-1500 req/min,因此最高可达25 req/sec.问题是RSS内存不断增长.现在我在内存达到危险等级时手动重启应用程序(1 heroku dyno使用的最大内存为512mb).内存图表看起来像这样(上面的灰轴是512mb的限制):

在此输入图像描述

释放内存时的时刻(在图表上)是我重新启动应用程序时.

奇怪的是它只在服务器上有持续负载时才会发生.当服务器上有例如2分钟负载时,内存会增加,然后再次下降.因此,似乎由于某种原因垃圾收集器无法正常工作(在服务器加载完成且应用程序不忙之前,它不会收集垃圾).

我能做些什么吗?我认为这不是内存泄漏,因为当服务器上没有负载时内存被释放...

我到目前为止尝试的是:

  1. 每隔2分钟手动调用GC
  2. 设置--max-old-space-size = 300但是当内存达到300mb时没有任何反应 - 它仍在增加.

也许还有其他选择可以帮助?

节点版本是 0.10.20


我使用了节点memwatch包,我设法从app收集堆差异:

所以我猜必须有一些泄漏.最大的记忆从第一个差异变化:

        ...
        {
          "what": "Array",
          "size_bytes": 9320312,
          "size": "8.89 mb",
          "+": 79086,
          "-": 10215
        },
        ...
        {
          "what": "Closure",
          "size_bytes": 2638224,
          "size": "2.52 mb",
          "+": 36826,
          "-": 184
        },
        {
          "what": "Native",
          "size_bytes": 21471232,
          "size": "20.48 mb",
          "+": 546,
          "-": 0
        },
        {
          "what": "String",
          "size_bytes": 2068264,
          "size": "1.97 mb",
          "+": …
Run Code Online (Sandbox Code Playgroud)

memory garbage-collection memory-leaks heroku node.js

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

Postgres约束唯一的日期时间范围

我的表有两列:

  1. startsAt
  2. endsAt

两者都保持日期和时间.我想制定以下约束:

如果两列都不是NULL,则startsAt和endsAt之间的范围不得与其他范围(来自其他行)重叠.

sql postgresql database-design constraints mutual-exclusion

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

如何在Postgres中执行简单的地图缩减?

我在postgres中使用trigrams进行全文搜索,如下所示:

SELECT * 
FROM "Users" users 
WHERE 'search_text' % ANY(regexp_split_to_array(users.name,E'\\s+'))
Run Code Online (Sandbox Code Playgroud)

上面的查询检查是否search_text匹配任何单词(拆分whitespace)User.displayName.这可行,但结果不按实际"得分"排序.

分数可以通过similarity(text,text)函数计算.

问题是,我必须按顺序排列每个单词的所有相似之处User.name.因此,如果用户名是,"A B C"则其分数应为:

similarity('search_text','A') + similarity('search_text','B') + similarity('search_text','C')
Run Code Online (Sandbox Code Playgroud)

所以我需要将用户名字映射到分数,然后对它们求和(减少).我怎样才能在postgres中做到这一点?

postgresql

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

web mp4视频采用哪种像素格式?

我要创建的MP4格式的视频,它似乎是我可以用不同的像素格式,如对其进行编码yuv420p,yuv422p,yuvj422p.我应该使用哪一个来最大化与大多数浏览器/播放器的兼容性?

mp4 ffmpeg html5-video

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

在拉图像层期间,Docker会永远挂起

我正在尝试构建docker镜像,但是在下载图像层期间,docker会永久挂起:

在此输入图像描述

我尝试了几次,它只是停止在不同的点下载.我也试过docker-machine restart没有任何影响.

我在Mac OS X上使用docker机器:

$ docker -v
Docker version 1.9.1, build a34a1d5
$ docker-machine -v
docker-machine version 0.5.5, build 02c4254
Run Code Online (Sandbox Code Playgroud)

知道怎么解决吗?

docker boot2docker docker-machine

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

如何防止/停止指令(vue 2.x)中默认事件(click)的传播

Vue.directive('login-to-click', {
  bind (el) {
    const clickHandler = (event) => {
      event.preventDefault()
      event.stopImmediatePropagation()
      alert('click')
    }
    el.addEventListener('click', clickHandler, true)
  }
})
Run Code Online (Sandbox Code Playgroud)

用法

<button @click="handleClick" v-login-to-click>CLICK</button>
Run Code Online (Sandbox Code Playgroud)

handleClick总是被触发。我怎样才能防止指令?尝试使用/不使用addEventListener“ capture”标志,没有任何运气。


目前,我得到了以下解决方案:

Vue.prototype.$checkAuth = function (handler, ...args) {
  const isLoggedIn = store.getters['session/isLoggedIn']
  if (isLoggedIn) {
    return handler.apply(this, args)
  } else {
    router.push('/login')
  }
}
Run Code Online (Sandbox Code Playgroud)

然后在组件中

<button @click="$checkAuth(handleClick)">CLICK</button>
Run Code Online (Sandbox Code Playgroud)

vue.js vuejs2

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