我想在Backbone.js模型中对表单进行一些服务器前验证.为此,我需要将表单中的用户输入转换为可用数据.我发现了三种方法:
var input = $("#inputId").val();
var input = $("form.login").serialize();
var input = $("form.login").serializeArray();
不幸的是,没有一个提供我需要的良好的可重用和可开发的JSON对象.我已经查看了Stack Overflow上的几个问题,但我发现只有一些额外的库.
不是Underscore.js,当前的jQuery或Backbone.js提供了一个帮助方法吗?
我无法想象没有这种功能的要求.
HTML
<form class="login">
<label for="_user_name">username:</label>
<input type="text" id="_user_name" name="user[name]" value="dev.pus" />
<label for="_user_pass">password:</label>
<input type="password" id="_user_pass" name="user[pass]" value="1234" />
<button type="submit">login</button>
</form>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
var formData = $("form.login").serializeObject();
console.log(formData);
Run Code Online (Sandbox Code Playgroud)
输出
{
"name": "dev.pus",
"pass": "1234"
}
Run Code Online (Sandbox Code Playgroud)
Backbone.js模型
var user = new User(formData);
user.save();
Run Code Online (Sandbox Code Playgroud) 我正在建立一个注册表(护照本地作为身份验证,形式为表单助手).
因为注册只知道GET和POST我想在一个函数中完成整个处理.
换句话说,我正在搜索以下内容:
exports.register = function(req, res){
if (req.isPost) {
// do form handling
}
res.render('user/registration.html.swig', { form: form.toHTML() });
};
Run Code Online (Sandbox Code Playgroud) 我想问一下是否有可能(通常是一个好主意)使用npm来处理前端依赖(Backbone,jQuery).
我发现Backbone,jQuery等都可以通过npm获得,但我必须设置另一个提取点(默认是node_modules
)或符号链接或其他...
有人曾经这样做过吗?
可能吗?
我需要改变package.json
什么?
我正在考虑一个处理消息应用程序的良好文档结构.
我基本上需要三种(或四种)对象:
我的想法是将联系人嵌入到用户文档中并将消息嵌入到对话文档中:
1.用户
{
username: 'dev.puS',
usernameCanonical: 'dev.pus', // used for unique constraints
email: 'developement.pus@gmail.com,
emailCanonical: 'developement.pus@gmail.com,
salt: 'some hash',
password: 'hash with salt',
logs: { last_login: 12.06.2008, last_password_reset: 04.03.2007 },
state: { online: true, available: false },
contacts: [ user_id1, user_id2, user_id3 ]
}
Run Code Online (Sandbox Code Playgroud)
2.会话
{
members: [ user_id1, user_id2 ],
messages: [
{ author: user_2, body: 'Hi what's up' },
{ author: user_1, body: 'Nothing out here :(' },
{ author: user_2, body: …
Run Code Online (Sandbox Code Playgroud) 我想为我的用户文档创建一个带有Mongoose的模型层,它可以:
在持久化到db之前,需要执行所有这些操作.幸运的是,mongoose支持验证,插件和中间件.
不好的是我找不到关于这个问题的任何好材料.mongoosejs.com上的官方文档太短了......
有没有人有一个关于Mongoose预处理的例子(或一个完整的插件,如果它存在的话)?
问候
我正在研究一些todo应用程序,并希望使用HTTP方法PATCH来添加和删除todo,因为这在语义上优于PUT.
在后端我使用express.js(node.js)和前端backbone.js(使用jQuery for ajax).
我已经尝试过,如果它实际上在我的本地开发套件(Archlinux,Chromium 20,node.js 0.8,express 2.X)的后端和前端工作,它工作:
app.js
app.patch('/todo/:id', function(req, res){
console.log('patch successfull');
}
Run Code Online (Sandbox Code Playgroud)
铬网控制台
$.ajax({
url: '/messages/4ff13720f00e2e2c4b000006',
type: 'PATCH',
data: { body: 'that is a patched message' }
});
Run Code Online (Sandbox Code Playgroud)
提到了请求,并且尽可能没有例外地提供数据库操作.
我现在想知道其他浏览器如何支持补丁方法.我看了谷歌,但很难找到一些东西,因为PATCH有多重含义......
我想删除bootstrap中跨距之间的边距.
一个想法是只用零边距和填充覆盖css属性.这是一个例子:http://jsfiddle.net/kKEpY/3/
没有例外,左列浮动到右侧,它可以工作,但我更喜欢直接引导解决方案.那么bootstrap是否提供了一个清除列边距(span-fluid)的属性?
问候
我想在Twitter导航栏中放置登录内联表单.
我已经做到了这一点,但我没有设法推动表格正确... http://jsfiddle.net/v34Sv/
所有的Twitter组件(span,offset,pull-right)都失败了,我担心在使用绝对位置时会丢失响应组件.
我想使用node.js crypto lib创建一个salt-hash,而不必解析任何硬编码数据.
硬编码我的意思是什么?
var salt, hardcodedString = "8397dhdjhjh";
crypto.createHmac('sha512', hardcodedString).update(salt).digest("base64");
Run Code Online (Sandbox Code Playgroud)
如果不使用原始javascript,随机函数或硬编码,我怎么能创建一个随机字符串?
问候
UPDATE
var Crypto = require('crypto')
, mongoose = require('mongoose');
module.exports = mongoose.model('User', new mongoose.Schema({
username: {
type: String
, required: true
, index: { unique: true, sparse: true }
, set: toLower
},
email: {
type: String
, required: true
, index: { unique: true, sparse: true }
, set: toLower
},
salt: {
type: String
, set: generateSalt
},
password: {
type: String
, set: encodePassword …
Run Code Online (Sandbox Code Playgroud) 我查看了underscore.js和backbone.js这两个非常流行的库并注意到它们不使用错误处理(try,catch,exception).
这个决定的原因是什么?
node.js ×5
express ×3
javascript ×3
backbone.js ×2
jquery ×2
browser ×1
bson ×1
cryptography ×1
css ×1
http ×1
layout ×1
mongodb ×1
mongoose ×1
node-crypto ×1
npm ×1
odm ×1