小编Ser*_*món的帖子

没有回调的Mongoose更新

我有一个典型的架构和模型:

var mongoose = require('mongoose');

var userSchema = new mongoose.Schema({
    email: String,
    password: String,
    profile: {
        name: String,
        surname: String,
        photo: String
    },
    stats: {
        lastLogin: { type: Date, default: Date.now },
        loginCount: Number,
        lastIP: String
    },
    source: String,
    deleted: Boolean,
    dateCreated: { type: Date, default: Date.now }
});

mongoose.model('User', userSchema);
Run Code Online (Sandbox Code Playgroud)

当我执行此更新时,它仅在我定义回调时有效,否则它只是执行但在数据库中没有更改值:

User.update({email:'foo@bar.com'}, {$inc: {'stats.loginCount': 1}});
Run Code Online (Sandbox Code Playgroud)

这有效:

User.update({email:'foo@bar.com'}, {$inc: {'stats.loginCount': 1}}, function() {});
Run Code Online (Sandbox Code Playgroud)

这是一个错误吗?我没有在文档中看到是否需要回调但是要求这个很奇怪......我想我在这里遗漏了一些东西.

注意:我正在通过电子邮件进行测试建议,我在NodeJS v0.8.17中使用mongoose v3.5.4,并使用简单的Express v3.0.6设置.

提前致谢.

mongoose mongodb node.js express

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

在Jade模板中使用ucfirst的更好方法是什么?

是否有更好的方法来将Jade中字符串的第一个字符大写比这更好?

for list in project.lists
    - list.name = list.name.charAt(0).toUpperCase() + list.name.slice(1);
    li #{list.name}
Run Code Online (Sandbox Code Playgroud)

每次我想要变量大写这样做都很难看,有没有办法在Jade中我可以定义一个我在每个模板中都可用的自定义函数,如:

for list in project.lists
    li #{ucfirst(list.name)}
Run Code Online (Sandbox Code Playgroud)

提前致谢!

node.js pug

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

标签 统计

node.js ×2

express ×1

mongodb ×1

mongoose ×1

pug ×1