commonjs写js文件没有导出也可以require引入吗?
我写的node+mongoose项目,models文件夹下存放定义mongoose 模块的代码,如果我写了module.exports= 导出的话node就报错,
下面是一个model
const mongoose = require('mongoose')
const Schema = mongoose.Schema
const mongoosePaginate = require('mongoose-paginate')
// 表单模板
/**
*fieldType:
单行文本框 (input)text
多行文本框 textarea
数字 (input)number
邮箱地址 (input)email
日期 (input)date
单选按钮 (input)radio
复选框 (input)checkbox
下拉列表框 select
表格 table
文件 (input)file(url)
*/
const FormModelSchema = new Schema({
formName: String,
instruction: String,
userName: String,
updateUserName: String,
userId:String,
updateUserId: String,
createAt: {type: Date, default: Date.now},
updateAt: {type: Date, default: Date.now},
formFields: [{
displayName: String,
// fieldName:String,
fieldType: String,
placeholder:String,
isRequired:{type: Boolean, default: false},
value:String,
column:String,
fieldOptions:[{
displayText:String,
}],
fieldOrder:Number
//图片 or 文件 限制图片/文件大小
// maxSize:String, 文字长度
}]
})
// Defines a pre hook for the document.
FormModelSchema.pre('save', function(next) {
if (this.isNew) {
this.createAt = this. updateAt = Date.now()
}
else {
this.updateAt = Date.now()
}
next()
})
FormModelSchema.plugin(mongoosePaginate)
var FormModel=mongoose.model('FormModel', FormModelSchema)
module.exports=FormModel
这是报错信息:
但是如果我不导出,反而不会报错,这是什么原因呢?app.js中就是直接require 引入models文件夹下的js文件。
问题二:
在不导出的前提下,我另一个model代码结构和定义以及保存的方法都跟这个几乎是一样的,但是另一个就可以正常存数据,这个文件就不可以存,每次一调用存数据的接口就说formModel 不存在。这又是什么原因呢?
下面是我调用该model的代码:
'use strict'
var mongoose = require('mongoose')
const FormModel = mongoose.model('FormModel')
exports.createFormModel = async(data) => {
let FormModel = new FormModel(data)
let flag = false
await FormModel.save(function (err) {
if (err) {
flag = false
return console.error(err)
}else{
flag=true
}
})
return flag
}
exports.updateFormModel = async(data) => {
let FormModel = new FormModel(data)
let flag = false
await FormModel.update(function (err) {
if (err) {
flag = false
return console.error(err)
}else{
flag=true
}
})
return flag
}
这是报错:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没用过 Mongoose,怎么错一眼看不出,不调试一下也不知道。不过不导出就相当于不执行,所以不报错是正常的。题主还是想办法除错吧,并且仔细读一读文档。没有错误除不掉,也只有踏踏实实除错才有机会获得提升。
对于在不导出的前提下,我另一个model代码结构和定义以及保存的方法都跟这个几乎是一样的,但是另一个就可以正常存数据,这个文件就不可以存,每次一调用存数据的接口就说formModel 不存在。我找到了原因,是因为我创建FormModel实例的时候变量名称跟这个冲突了。