Javascript 使用节点和mongoose导出时出错

Javascript 使用节点和mongoose导出时出错,javascript,node.js,mongodb,express,mongoose,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 = n

因此,我创建了一些模式,如遵循并导出模型

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**/
我的代码又失败了


这就是我们在节点中导出的方式?正确的?但是我的代码失败了。

如何导入模式?您应该使用点符号提取模式名称,因为您正在导出对象

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

如何导入模式?您应该使用点符号提取模式名称,因为您正在导出对象

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

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

module.exports = {Doctor,doctorSchema}
第一种选择:

module.exports = Doctor
导入为

const Doctor = require('exportedSchemaFilePath')
const {Doctor, DoctorSchema} = require('exportedSchemaFilePath')
第二种选择:

module.exports = {Doctor,doctorSchema}
导入为

const Doctor = require('exportedSchemaFilePath')
const {Doctor, DoctorSchema} = require('exportedSchemaFilePath')
当您作为JSON对象导出时

第三种选择:

module.exports = {Doctor} 
导入为

const {Doctor} = require('exportedSchemaFilePath')

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

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

module.exports = {Doctor,doctorSchema}
第一种选择:

module.exports = Doctor
导入为

const Doctor = require('exportedSchemaFilePath')
const {Doctor, DoctorSchema} = require('exportedSchemaFilePath')
第二种选择:

module.exports = {Doctor,doctorSchema}
导入为

const Doctor = require('exportedSchemaFilePath')
const {Doctor, DoctorSchema} = require('exportedSchemaFilePath')
当您作为JSON对象导出时

第三种选择:

module.exports = {Doctor} 
导入为

const {Doctor} = require('exportedSchemaFilePath')

当您更改导出方法时,只需更改require选项

它会引发什么错误?对于某些情况,代码会无声地失败,对于某些情况,代码会说“没有医生的构造函数(模型名称)”@rashomonh您如何在新情况下导入导出的变量?可能您对这两种情况都使用了默认导入?它会抛出什么错误?对于某些情况,代码会无声地失败,对于某些情况,它会说“没有医生的构造函数(模型名称)”@rashomonh在新的情况下,您如何导入导出的变量?也许你正在为这两个使用默认导入?是的,kunal,问题是即使我没有提取它或在任何地方使用它,仍然编写上面的语法会产生问题。如果模块没有在任何地方使用,它不应该给出错误。根据您上面的评论,您提到错误是“没有医生(模型名称)的构造函数”。我相信这是因为代码无法在文件中找到模型构造函数。你能提供关于错误的更多细节吗?是的,kunal,问题是即使我没有提取它或在任何地方使用它,仍然编写上面的语法会产生问题。如果模块没有在任何地方使用,它不应该给出错误。根据您上面的评论,您提到错误是“没有医生(模型名称)的构造函数”。我相信这是因为代码无法在文件中找到模型构造函数。你能提供更多关于错误的细节吗?是的,这是可行的,第二种选择,导入是不正确的。谢谢你,行得通,第二个选择是,导入不正确。谢谢