我想保存一个哈希密码.我正在使用setterMethod:
module.exports = (sequelize, DataTypes) ->
sequelize.define 'User',
# other model fields [...]
password:
type: DataTypes.STRING
validate: notEmpty: msg: 'You need to set a password.'
set: (pw) ->
salt = bcrypt.genSaltSync(10)
hash = bcrypt.hashSync(pw, salt)
@setDataValue('password', hash)
Run Code Online (Sandbox Code Playgroud)
setter首先运行.空字符串密码('')被散列为非空字符串(例如$2a$10$pDDIGnV.r47i9YOv0Fls/euQ0yYvfyq8T1SyP9VRQsTUAqptNmxXO).
验证器验证后,密码不再为空.
如何在setter之前验证密码?
我调查了钩子,但他们也没有提到制定者.
我正在使用sequelize@2.1.3.
我刚刚用木偶开始,我阅读并沿以下木偶-一个温和的介绍由大卫Sulc.这是一个非常好的阅读,并且很容易跟随构建示例应用程序Contact Manager和协同存储库.
但是,我之前使用RequireJS建立了一个项目,并希望将该书的想法和概念翻译并整合到该项目中.我实际上并没有那么远,我想我可能会对使用Marionette模块与导致undefined对象的AMD模块有点混淆.
更具体地讲,让我清单app.js,listView.js并listController.js应是本作的RequireJS版本提交样品回购.
app.js
/*global define*/
define([
'marionette'
], function ( Marionette ) {
'use strict';
var ContactManager = new Marionette.Application();
ContactManager.addRegions({
mainRegion : '#main-region'
});
ContactManager.on( 'initialize:after', function() {
ContactManager.ContactsApp.List.Controller.listContacts();
});
return ContactManager;
});
Run Code Online (Sandbox Code Playgroud)
listView.js
/*global define*/
define([
'app',
'marionette',
'handlebars',
'text!templates/contact.hbs'
], function ( ContactManager, Marionette, Handlebars, contactTemplate ) {
'use strict';
var List = ContactManager.module( 'ContactsApp.List' );
List.Contact …Run Code Online (Sandbox Code Playgroud) 有没有办法让控制台访问Dokku的PostgreSQL 插件?在 Heroku 上,我会这样做heroku pg:psql。这在 Dokku 环境中是否可行,如果可以,如何实现?
我在Express中使用Multer作为multipart/form-data中间件。我想知道如何验证上传文件的大小,最好是在上传文件时验证。
我知道您可以limits在实例化 Multer 时在选项对象中进行设置,如下所示:
app.use multer
limits:
fileSize: 1024 * 1024
Run Code Online (Sandbox Code Playgroud)
但是,这只会截断上传的文件,并且不允许显示“文件太大”之类的错误消息。当文件大小超过限制时。
我还检查了onFileUploadData(file, data)您可以访问file对象和data缓冲区的事件处理程序。在这里我可以通过检查来检查当前文件大小data.length。不过,我不清楚如何处理大于data.length我允许的最大上传文件大小的情况。
最终,我的想法是,当 Multer 解析请求并且上传的文件太大时,我想向用户显示一条闪存消息并重定向到表单,以便她可以尝试较小的文件。我的控制器的动作create看起来像这样:
exports.create = (req, res) ->
Record.create(req.body)
.success (record) ->
image = req.files.image
uploadImage(image, record.id).then ->
req.flash 'success', 'Record created.'
res.redirect "/records/#{record.id}"
.error (err) ->
req.flash 'error', err
res.redirect 'records/new'
Run Code Online (Sandbox Code Playgroud)
问题是req.files.image此时已经上传到系统 tmp 文件夹的已解析图像。因此,即使在这里检查文件大小也无法真正让我防止不需要的大文件上传。
一般来说,使用 Multer 或其他表单解析中间件在 Express 中处理文件上传验证的最佳方法是什么?
javascript ×3
coffeescript ×2
backbone.js ×1
dokku ×1
express ×1
file-upload ×1
marionette ×1
node.js ×1
postgresql ×1
requirejs ×1
sequelize.js ×1