小编CD-*_*-jS的帖子

猫鼬虚拟填充数组

我想使用 mongoose 虚拟填充来获取数据,但对于嵌套数组,但没有按预期工作 -

以下是我的架构 -

// schema for organisation structure
var OrganisationStructureSchema = new mongoose.Schema({
    _id: { type: Schema.ObjectId },
    Description: { type: String }        
});

// First nested array schema
var EmploymentRoleSchema = new mongoose.Schema({
        _id: {type: mongoose.Schema.ObjectId,
        LocationId: { type: Schema.ObjectId }            
});

// Create the virtual to populate
EmploymentRoleSchema.virtual('Location', {
  ref: 'OrganisationStructure',
  localField: 'LocationId',
  foreignField: '_id'
});

// Parent object schema
var PersonSchema = new mongoose.Schema({
   _id: mongoose.Schema.ObjectId,
   EmploymentRoles = [EmploymentRoleSchema]
});
Run Code Online (Sandbox Code Playgroud)

如果我得到这样的 person 对象,它不会填充虚拟位置属性

PersonelModel.findOne({_id: …
Run Code Online (Sandbox Code Playgroud)

mongoose

5
推荐指数
0
解决办法
2423
查看次数

React-Bootstrap 全屏模态对话框

我目前正在尝试使包含在 react-bootstrap 中的 Modal 组件全屏显示。

我可以从文档中看到,对话框的各个组件(模态、页眉、页脚、正文)通过“bsClass”接受自定义类,但是一旦呈现高度,高度就会被另一个具有“模态内容”类的 div 限制,但看不到将自定义类传递给 this 的方法。

是否可以这样做,或者是否有另一种方法可以在对话框呈现后无需手动更改类即可实现相同的效果?

reactjs react-bootstrap

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

MongoImport 错误:X509_STORE_add_cert:cert 已经在哈希表中

我目前正在尝试将一组包含数据的 JSON 文件导入到 IBM Bluemix/Compose 上托管的 mongo 数据库中。

我有一个脚本,它运行创建的文件,然后运行 ​​mongoimport 命令将文件导入数据库,这对我的本地数据库(确实偶尔对 Compose 数据库)非常有效,但是大多数时候我收到以下错误——

2017-05-09T14:59:02.508+0100 失败:连接到数据库服务器时出错:SSL 错误:x509 证书例程:X509_STORE_add_cert:哈希表中的证书 x509 证书

2017-05-09T14:59:02.508+0100 导入 0 个文件

我的 mongoimport 命令如下所示 -

mongoimport --batchSize 100 --ssl --sslAllowInvalidCertificates --host *censored* --collection Personnel --file data/TestData/Personnel_WICS.json -u admin -p *censored* -d MY_DB --authenticationDatabase admin
Run Code Online (Sandbox Code Playgroud)

这是一个 mongoimport 错误吗?也许是 Compose 的问题?还是我用命令做错了什么?

我应该注意,我导入的文件大小从 3mb 到 100mb,但即使通过拆分来减小较大的文件大小似乎也无济于事。

我的导入脚本在上一个完成后立即运行一个导入命令,像这样运行多个背靠背导入是否有问题?

ssl compose-db mongodb mongoimport ibm-cloud

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

Karma/Istanbul Code Coverage找不到功能并始终返回100%

我正在尝试为我的Karma测试添加代码覆盖率,但是虽然它找到了我正在测试的正确的JS文件,但它找不到这些文件中的函数.

从我到目前为止所读到的内容来看,我认为在传递给伊斯坦布尔进行报道之前,文件没有被正确浏览,但不可否认我是新手,所以我希望能提出一些建议.

这是我的JS文件(common.js):

var applicationSettings = require('./settings');

var common = {
    getAjaxBaseUrl: function () {
        var strVirtualDirectory = applicationSettings.VirtualDirectory;
        if (strVirtualDirectory.length > 1) {
            if (!strVirtualDirectory.startsWith("/")) {
                strVirtualDirectory = "/" + strVirtualDirectory;
            }
        }
    return strVirtualDirectory;
   }
}
module.exports = common;
Run Code Online (Sandbox Code Playgroud)

这是我写的测试:

it('Client - Should get correct AjaxBaseUrl with /', function () {
    var clientSettings = require('./../client/scripts/settings');
    var clientCommon = require('./../client/scripts/common');

    clientSettings.VirtualDirectory = '/VD';
    expect(clientCommon.getAjaxBaseUrl()).to.equal('/VD');

});

it('Client - Should get correct AjaxBaseUrl without /', function () {
    var clientSettings = …
Run Code Online (Sandbox Code Playgroud)

javascript code-coverage browserify karma-runner istanbul

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

创建模型后我可以将 mongoose 插件添加到模型中吗?

我遇到一种情况,我需要向猫鼬模型添加一个插件,但每次使用该插件时都可能更改传递给该插件的选项。

请参阅下面的示例:

const PersonnelSchema = new Schema({
    _id: { type: Schema.ObjectId },
    GivenName: { type: String },
    FamilyName: { type: String }
});
module.exports = mongoose.model('Personnel', PersonnelSchema, 'Personnel');
Run Code Online (Sandbox Code Playgroud)

我想要做的是在使用模型时添加插件,以便我可以向它传递参数。

我尝试在使用插件时将插件添加到模型上的架构对象中,例如:

 objModel.schema.plugin(mongoosastic, {
                index: strIndexName,
                transform: (data) => {
                    data.TenantDB = strTenantDB;
                    return data;
                }
});
Run Code Online (Sandbox Code Playgroud)

但这只会将插件方法添加到模式对象的静态中,并且不会在模型上正确初始化插件。

有什么方法可以实现这一点吗?

mongoose mongodb node.js

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