使用节点和猫鼬导出时出错

时间:2020-03-08 16:26:44

标签: javascript node.js mongodb express mongoose

因此,我已经创建了一些模式,例如跟踪并导出模型,

var mongoose = require('mongoose');


var specSchema = new mongoose.Schema({
    name: String,
    description:String
});

var qualSchema = new mongoose.Schema({
    name: String,
    description:String
});


var doctorSchema = new mongoose.Schema({
    name: String,

    // qualifications:[qualSchema],
    // specializations:[specSchema]
});

var Doctor = mongoose.model('Doctor',doctorSchema);
module.exports = Doctor/**please see here**/

这很好。

但是后来我以为我也想从这个js文件中导出模式,所以我将最后一行更改如下:

module.exports = {Doctor,doctorSchema}

我的代码开始失败, 然后我意识到,如果我写

module.exports = {Doctor} /**i.e add curly braces to it**/

我的代码再次失败。

这是我们如何在节点中导出?对?但这使我的代码失败。

2 个答案:

答案 0 :(得分:1)

您如何导入架构?由于要导出对象,因此应使用点符号提取模式名称。

const Doctor = require('exportedSchemaPath').Doctor;

答案 1 :(得分:1)

您可以如下导出模型和架构:

第一个选项:

module.exports = Doctor

导入为

const Doctor = require('exportedSchemaFilePath')

第二个选项:

module.exports = {Doctor,doctorSchema}

导入为

const {Doctor, DoctorSchema} = require('exportedSchemaFilePath')

在导出为JSON对象时

第三种选择:

module.exports = {Doctor} 

导入为

const {Doctor} = require('exportedSchemaFilePath')

在更改导出方法时,您只需要更改require选项即可