小编use*_*015的帖子

从Mongoose Model获取模式属性

我正在使用Mongoose.js来创建带有模式的模型.

我有一个模型列表(很多),有时我想获得构成特定模型的属性/键.

是否有方法为任何给定的模型提取属性模式?

例如,

var mySchema = module.exports = new Schema({
  SID: {
    type: Schema.Types.ObjectId
    //, required: true
  },
  teams: {
    type: [String]
  },
  hats: [{
    val: String,
    dt: Date
  }],
  shields: [{
    val: String,
    dt: Date
  }],
  shoes: [{
    val: String,
    dt: Date
  }]
}
Run Code Online (Sandbox Code Playgroud)

);

是否可以提取/识别模式的属性[SID, hats, teams, shields, shoes]

mongoose mongodb

54
推荐指数
4
解决办法
4万
查看次数

将对象推送到Mongoose中的数组模式

我有这个mongoose架构

var mongoose = require('mongoose');

var ContactSchema = module.exports = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  phone: {
    type: Number,
    required: true,
    index: {unique: true}
  },
  messages: [
  {
    title: {type: String, required: true},
    msg: {type: String, required: true}
  }]
}, {
    collection: 'contacts',
    safe: true
});
Run Code Online (Sandbox Code Playgroud)

并尝试通过执行以下操作来更新模型:

Contact.findById(id, function(err, info) {
    if (err) return res.send("contact create error: " + err);

    // add the message to the contacts messages
    Contact.update({_id: info._id}, {$push: {"messages": {title: title, msg: msg}}}, …
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb

50
推荐指数
2
解决办法
8万
查看次数

Angularjs和Number.NaN

当我碰到这个时,我正在浏览角度文档:

https://github.com/angular/angular.js/blob/master/src/ng/directive/input.js#L1556

请注意 this.$viewValue = Number.NaN;

不仅在这个文档中,而且在其他角度文档中也是如此.

这样做的优点/缺点是什么,而不是将其设置为undefinednull

javascript null nan undefined angularjs

8
推荐指数
1
解决办法
8394
查看次数

module.export函数不返回结果

我在从模块函数返回结果时遇到一些问题.
以下是我正在使用的两个文件.

当我调用导出的函数时,它返回nothings.
有什么建议/修复原因吗?它与回调有关吗?

车型/ index.js

module.exports = exports = function(library) {    
    modCodes.findOne({name: library}, {modcode:1}, function(err, mc) {
      if (err) throw new Error(err);
      var db = mongoose.createConnection('mongodb://localhost:27017/' + mc.modcode + '?safe=true');
      var models = {
        Books: db.model('books', require('./schemas/books'))
        }

        return models;
    });

};
Run Code Online (Sandbox Code Playgroud)

books.js

var Models = require('../models');    
console.log(Models("myLibrary")); //return nothing
Run Code Online (Sandbox Code Playgroud)

module return node.js

7
推荐指数
1
解决办法
9310
查看次数

使用MongoDB Mongoose驱动程序在对象数组中增加{key:value}

我有一个类似于此的文档:

{
    'user_id':'{1231mjnD-32JIjn-3213}',
    'name':'John',
    'campaigns':
        [
            {
                'campaign_id':3221,
                'start_date':'12-01-2012',
                'worker_id': '00000'
            },
            {
                'campaign_id':3222,
                'start_date':'13-01-2012',
                'worker_id': '00000'
            },
            ...
            etc
            ...
        ]
}
Run Code Online (Sandbox Code Playgroud)

假设我想增加数组中campaign_id的元素7 campaigns.
使用带有猫鼬驱动程序的,我想我可以这样做:

camps.findOneAndUpdate({name: "John"}, {$inc: {"campaigns.7.campaign_id": 1}}, upsert: true, function(err, camp) {...etc...});

这不会增加campaign_id.
关于增加这个的任何建议?

increment mongoose mongodb

3
推荐指数
1
解决办法
2143
查看次数

AJAX调用expressJS

我似乎无法使AJAX调用正确.还有其他QA处理该$.ajax()功能,但我正试图解决这个问题$.post().

单击表单按钮时,将执行头部的javascript,其中包括a $.post().URL /login被路由并传递给loginPost函数.确定响应并将其发送回javascript(对吗?).相反,网页呈现响应(传递||失败).

为什么AJAX调用的响应不会被发送回处理?

这是一个简单的例子,我正在努力让我更好地了解expressJS和jQuery中的AJAX如何工作.任何帮助是极大的赞赏!

- views/login.jade

script(src='/_js/jquery-1.8.2.min.js')
script
  $(document).ready(function(req, res) {
    $('#login').submit(function() {
    var formData = $(this).serialize();
    console.log(formData);
    $.post('/login', formdata, processData).error('ouch');

    function processData(data, status) {
      console.log(status);
      console.log(data);
      if (data == 'pass') {
        $('#content').html('<p>You have successfully loggin in!</p>');
      } else {
        if (! $('#fail').length) {
          $('#formFrame').prepend('<p id="fail">Incorrect login information. Please try again)</p>');
        }
      }
    } //end processData
  }); //end submit
}); //end ready

div.main
h1= title
div#formFrame
  form(id='login', action='/login', method='POST')
p …
Run Code Online (Sandbox Code Playgroud)

ajax node.js express

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

关闭与Node.js的Mongoose连接

我有一台服务器启动并运行,没有错误被抛出.我正在从mongodb传输数据.当数据完成流式传输时,我想调用'close'然后断开mongo数据库.

以下是我的代码.当我尝试连接到服务器时,第一个请求成功,但任何其他请求都失败.

当我试图检查mongodb是否被断开时,我发现它不是.

你如何使用mongoose.connection.close()它,什么时候会失败?

var http = require('http')
  , url = require('url')
  , mongoose = require('mongoose')
  , Schema = mongoose.Schema
  , server, n;

server = http.createServer(function(request, response) {
  var path = url.parse(request.url).pathname.slice(0, 4);
  n = url.parse(request.url).pathname.slice(5);

  // connect to mongo
  mongoose.set('debug', true);
  mongoose.connect('localhost', 'lotsOfNumber');
  mongoose.connection.on('error', function(err) {
    console.error('connection error: ' + err);
  });

  mongoose.connection.on('open',function() {

    var stuff = mongoose.model('numbersHere', new Schema({serialNumber: Number}, {safe: true}));

    switch (path) {

      case '/slq':

        var stream = stuff.find({}).limit(1).skip(n).sort('field value').stream();

        stream.on('error', function(err) {
          console.error("Error …
Run Code Online (Sandbox Code Playgroud)

mongoose node.js

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

使用 autoIncrement 时删除 IndexedDB 中的项目

我正在尝试实现这个例子

一切正常,直到我尝试删除某个项目。

使用这个:

request.onupgradeneeded = function(event) {
      console.log("upgrade", event);

      db = event.target.result;
      console.log("db", db);

      if (!db.objectStoreNames.contains("chatBot")) {
        var objectStore = db.createObjectStore("chatBot", {keyPath: "timeStamp", autoIncrement: true});
      }
    };
Run Code Online (Sandbox Code Playgroud)

并设置删除:

btnDelete.addEventListener("click", function() {
      var id, transaction, objectStore, request;

      id = document.getElementById("txtID").value;
      console.log("id", typeof id);

      transaction = db.transaction("people", "readwrite");
      objectStore = transaction.objectStore("people");
      request = objectStore.delete(id);
      request.onsuccess = function(evt) {
        console.log("deleted content");
      };
    }, false);
Run Code Online (Sandbox Code Playgroud)

将项目添加到 indexedDB 没有问题,但由于某种原因,我无法弄清楚为什么它无法删除这些项目。

id一个字符串,objectStore.delete(id)是正确的实现。

这是示例的粘贴箱

使用火狐 18

javascript firefox indexeddb

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