我试图迭代由集合提取的模型.
我有一段代码:
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) 我有以下型号:
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){ ... })
如何?
首先,我使用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) 我在尝试着:
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\".但他们仍然被删除.我能做什么?
我的应用程序在5个并行dynos上运行在heroku上.恒定负载为500-1500 req/min,因此最高可达25 req/sec.问题是RSS内存不断增长.现在我在内存达到危险等级时手动重启应用程序(1 heroku dyno使用的最大内存为512mb).内存图表看起来像这样(上面的灰轴是512mb的限制):

释放内存时的时刻(在图表上)是我重新启动应用程序时.
奇怪的是它只在服务器上有持续负载时才会发生.当服务器上有例如2分钟负载时,内存会增加,然后再次下降.因此,似乎由于某种原因垃圾收集器无法正常工作(在服务器加载完成且应用程序不忙之前,它不会收集垃圾).
我能做些什么吗?我认为这不是内存泄漏,因为当服务器上没有负载时内存被释放...
我到目前为止尝试的是:
也许还有其他选择可以帮助?
节点版本是 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) 我的表有两列:
startsAtendsAt两者都保持日期和时间.我想制定以下约束:
如果两列都不是NULL,则startsAt和endsAt之间的范围不得与其他范围(来自其他行)重叠.
我在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中做到这一点?
我要创建的MP4格式的视频,它似乎是我可以用不同的像素格式,如对其进行编码yuv420p,yuv422p,yuvj422p.我应该使用哪一个来最大化与大多数浏览器/播放器的兼容性?
我正在尝试构建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)
知道怎么解决吗?
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) postgresql ×3
node.js ×2
algorithm ×1
asp.net ×1
backbone.js ×1
bash ×1
boot2docker ×1
constraints ×1
docker ×1
ffmpeg ×1
hash ×1
heroku ×1
html5-video ×1
macos ×1
memory ×1
memory-leaks ×1
mp4 ×1
psql ×1
sequelize.js ×1
sql ×1
vue.js ×1
vuejs2 ×1