Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mongoose架构注册-传递配置信息_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript Mongoose架构注册-传递配置信息

Javascript Mongoose架构注册-传递配置信息,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,注册mongoose模式并使用它们时,传递配置信息的好方法是什么 在下面的例子中,我想让读取首选项和超时值来自配置文件“读取:['nearest']},安全:{wtimeout:10000})” 类似于=>“read:[dbConfig.readPrefence]},safe:{wtimeout:dbConfig.writetimeoutms}”,传递dbConfig的好方法是什么? var mongoose = require('mongoose'); var Schema = mongoos

注册mongoose模式并使用它们时,传递配置信息的好方法是什么

在下面的例子中,我想让读取首选项和超时值来自配置文件<代码>“读取:['nearest']},安全:{wtimeout:10000})”

类似于=>
“read:[dbConfig.readPrefence]},safe:{wtimeout:dbConfig.writetimeoutms}”,传递dbConfig的好方法是什么?

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var blogSchema = new Schema({
  title:  String,
  author: String,
  body:   String,
  comments: [{ body: String, date: Date }],
  date: { type: Date, default: Date.now },
  hidden: Boolean,
  meta: {
    votes: Number,
    favs:  Number
  }
}, {read: ['nearest']}, safe: {wtimeout: 10000}));

解决方案可能取决于您对文件的组织方式,这意味着您可能要问的是如何将配置传递给多个文件,每个文件都包含一个模式。但是首先看一看这个简单的例子,这个文件中存在一个模式,我建议从那里加载配置并传入值

config.json

{
    "read": "nearest",
    "safe": true
}
my schema.js

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    config = require('./config.json');

var blogSchema = new Schema({
    title:  String,
    author: String,
    body:   String,
    comments: [{ body: String, date: Date }],
    date: { type: Date, default: Date.now },
    hidden: Boolean,
    meta: {
        votes: Number,
        favs:  Number
    }
}, {
    read: config.read,
    safe: config.safe
});
var mySchema = require("./my-schema.js")(config);
module.exports = function(config) { ... }
如果您有多个模式,并且希望只加载一次配置并传递,那么我建议在模式文件的require调用中发送它。例如:

app.js

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    config = require('./config.json');

var blogSchema = new Schema({
    title:  String,
    author: String,
    body:   String,
    comments: [{ body: String, date: Date }],
    date: { type: Date, default: Date.now },
    hidden: Boolean,
    meta: {
        votes: Number,
        favs:  Number
    }
}, {
    read: config.read,
    safe: config.safe
});
var mySchema = require("./my-schema.js")(config);
module.exports = function(config) { ... }
my schema.js

var mongoose = require('mongoose'),
    Schema = mongoose.Schema,
    config = require('./config.json');

var blogSchema = new Schema({
    title:  String,
    author: String,
    body:   String,
    comments: [{ body: String, date: Date }],
    date: { type: Date, default: Date.now },
    hidden: Boolean,
    meta: {
        votes: Number,
        favs:  Number
    }
}, {
    read: config.read,
    safe: config.safe
});
var mySchema = require("./my-schema.js")(config);
module.exports = function(config) { ... }