在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Linux  網(wǎng)絡(luò)安全  HTML/ commonjs寫js文件沒(méi)有導(dǎo)出也可以require引入嗎?

commonjs寫js文件沒(méi)有導(dǎo)出也可以require引入嗎?

我寫的node+mongoose項(xiàng)目,models文件夾下存放定義mongoose 模塊的代碼,如果我寫了module.exports= 導(dǎo)出的話node就報(bào)錯(cuò),

下面是一個(gè)model

const mongoose = require('mongoose')
const Schema = mongoose.Schema
const mongoosePaginate = require('mongoose-paginate')

// 表單模板
/**
*fieldType:
單行文本框 (input)text
多行文本框 textarea
數(shù)字 (input)number
郵箱地址 (input)email
日期 (input)date
單選按鈕  (input)radio
復(fù)選框 (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, 文字長(zhǎng)度
    }]
})
// 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

這是報(bào)錯(cuò)信息:

clipboard.png

但是如果我不導(dǎo)出,反而不會(huì)報(bào)錯(cuò),這是什么原因呢?app.js中就是直接require 引入models文件夾下的js文件。

問(wèn)題二:
在不導(dǎo)出的前提下,我另一個(gè)model代碼結(jié)構(gòu)和定義以及保存的方法都跟這個(gè)幾乎是一樣的,但是另一個(gè)就可以正常存數(shù)據(jù),這個(gè)文件就不可以存,每次一調(diào)用存數(shù)據(jù)的接口就說(shuō)formModel 不存在。這又是什么原因呢?

下面是我調(diào)用該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
}

這是報(bào)錯(cuò):

clipboard.png

回答
編輯回答
絯孑氣

對(duì)于在不導(dǎo)出的前提下,我另一個(gè)model代碼結(jié)構(gòu)和定義以及保存的方法都跟這個(gè)幾乎是一樣的,但是另一個(gè)就可以正常存數(shù)據(jù),這個(gè)文件就不可以存,每次一調(diào)用存數(shù)據(jù)的接口就說(shuō)formModel 不存在。我找到了原因,是因?yàn)槲覄?chuàng)建FormModel實(shí)例的時(shí)候變量名稱跟這個(gè)沖突了。

2018年2月27日 08:51
編輯回答
你的瞳

沒(méi)用過(guò) Mongoose,怎么錯(cuò)一眼看不出,不調(diào)試一下也不知道。不過(guò)不導(dǎo)出就相當(dāng)于不執(zhí)行,所以不報(bào)錯(cuò)是正常的。題主還是想辦法除錯(cuò)吧,并且仔細(xì)讀一讀文檔。沒(méi)有錯(cuò)誤除不掉,也只有踏踏實(shí)實(shí)除錯(cuò)才有機(jī)會(huì)獲得提升。

2017年8月25日 04:22