小编gab*_*eno的帖子

MongoDB ObjectID的正则表达式

参考这个 SO问题,我有一个场景,我只需要匹配包含af的十六进制字符串.其他一切都不匹配.例:

checkForHexRegExp.test("112345679065574883030833"); // => false
checkForHexRegExp.test("FFFFFFFFFFFFFFFFFFFFFFFF"); // => false
checkForHexRegExp.test("45cbc4a0e4123f6920000002"); // => true
Run Code Online (Sandbox Code Playgroud)

我的用例是我正在使用一组十六进制字符串,并且只想验证那些是mongodb objectID的真实.

javascript regex mongodb

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

保存在mongoose中时使用ObjectId的参考文档

我有以下架构:

// ingredient
var ingredSchema = new Schema({
  name: String,
  cost: Number
});

// order
var orderSchema = new Schema({
  cusName: String,
  ingredients: [{type: Schema.Types.ObjectId, ref: 'Ingredient'}]
});

// create model
var Ingredient = mongoose.model('Ingredient', ingredSchema);
var Order = mongoose.model('Order', orderSchema);
Run Code Online (Sandbox Code Playgroud)

我已经在一个系列中保存了一堆成分,ingredients并且有一个UI,用户可以在其中为汉堡选择一组配料.然后我尝试orders在同一个数据库中的另一个集合中保存汉堡的订单,burgers如下所示:

// get order info from the form
var newOrder = new Order({ cusName: req.body.name, 
                           ingredients: req.body.ingredients });
newOrder.save(function(err) {
    if (err)
        return console.log('Could not save your new order', err);
    res.redirect('/order');
});
Run Code Online (Sandbox Code Playgroud)

保存订单的调用会生成以下错误: …

mongoose mongodb node.js express

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

更好地理解JavaScript for循环

在从JS编辑器(Tern)中读取代码时,我遇到了for循环的各种用法,如下面的代码片段所示:

代码段1 @ lines 463-468:

for (;;) {
  /* some code */
}
Run Code Online (Sandbox Code Playgroud)

代码片段2 @ 行97-100

for (var i = 0; ; ++i) {
  /* some code */
}
Run Code Online (Sandbox Code Playgroud)

同样,我也遇到了一个带有空体的for循环,例如:

for (var p; p; p = someValue) /* empty body */ ;
Run Code Online (Sandbox Code Playgroud)

我试图了解代码执行流程中发生了什么.

我的看法是,对于代码片段1,for循环没有条件,所以它可能会无休止地继续下去?对于代码段2中的代码,i是否不断增加而没有限制?对于第三个,循环继续,直到p被赋予评估的东西false

这些是我脑子里的想法,但我不确定.请协助.

javascript for-loop

9
推荐指数
1
解决办法
148
查看次数

Nodejs EventEmitter.once()如何工作?

从nodejs 源代码(LOC 179),我们有以下内容:

EventEmitter.prototype.once = function(type, listener) {

  /** ... **/

  function g() { /** ... **/ }

  g.listener = listener; // => ???
  this.on(type, g);

  return this;
};
Run Code Online (Sandbox Code Playgroud)

到目前为止,我的想法是这样的:

EventEmitter.once()设置一个事件typelistener在通过调用回调后立即将其删除g().但这条生产线究竟做了g.listener = listener;什么呢?

它是否在调用时添加了一个属性listener,该属性是构造函数创建的函数对象的函数g()

javascript node.js

5
推荐指数
1
解决办法
2329
查看次数

标签 统计

javascript ×3

mongodb ×2

node.js ×2

express ×1

for-loop ×1

mongoose ×1

regex ×1