【问题标题】:Export the particular variable of function to another file将函数的特定变量导出到另一个文件
【发布时间】:2019-09-08 19:04:12
【问题描述】:

我有一个查询,这就是我如何将“userURL”变量从下面的文件(imageController.js)发送到另一个文件(contactController.js)。一件事我只想发送“userURL”变量而不是整个函数“resize”。我尝试通过使用“module.exports”来解决这个问题,但我遇到的问题是“module.exports”发送整个函数“resize”而不是“userURL”变量。现在在第二个文件“contactController.js”中,我在 console.log 中提到了 {userURL},但它只打印“你的结果未定义”。我只想将 userURL 从第一个文件 imageController.js 导出到第二个文件“contactController.js”。


imageController.js


exports.resize = async (req, res, next) => {
 if(!req.file){
   next()
   return
 }

  const extension = req.file.mimetype.split('/')[1]
  req.body.userFile = `${uuid.v4()}.${extension}`
  const photo = await jimp.read(req.file.buffer)
                await photo.resize(500, jimp.AUTO)
                await photo.write(`./public/uploads/${req.body.userFile}`)
  const userimg = photo; 




  console.log(`./public/uploads/${req.body.userFile}`)

  cloudinary.config({
    cloud_name: 'katal',
    api_key: process.env.API_KEY,
    api_secret: process.env.API_SECRET
    }); 

  cloudinary.v2.uploader.upload(`./public/uploads/${req.body.userFile}`,{ 
  transformation: { width:100, height:100}}, function(error, result) { 
  console.log('please show result\t' +JSON.stringify(result))

    const userURL ='vikivivki'



    res.send(result.secure_url)
    console.log(result.secure_url)
})
}


contactController.js

const mongoose = require('mongoose')
const Contact = mongoose.model('Contact')
const moment = require('moment-timezone') 
const {userURL} = require('./imageController')


exports.contactForm = (req, res) => {
  res.render('contact')
} 

exports.usermessage = async(req, res) => {

      req.body.name =  req.body.name 
      req.body.email = req.body.email 
      req.body.message = req.body.message 
      const ind = moment.tz(Date.now(), "Asia/Calcutta")

      const newContact = new Contact(req.body)
      await newContact.save() 

      console.log('your result',userURL)


      let showResult1 = JSON.stringify(newContact)
      let showResult = JSON.parse(showResult1)
      res.send(showResult.message)

    }

【问题讨论】:

  • exports.userURL ='vikivivki'
  • 我如何在另一个文件中只导入这个变量@joyBlanks
  • const {userURL} = require('./imageController.js')
  • 成功了吗?让我知道你需要更多帮助吗?
  • 它工作正常,但打印未定义

标签: javascript node.js ecmascript-6


【解决方案1】:

您需要导出您需要访问的项目

exports.userURL ='vikivivki'; //exporting here along with rezise as well

文件 imageController.js

//imageController.js

exports.userURL ='vikivivki'; //exporting here along with rezise as well

exports.resize = async (req, res, next) => {
 if(!req.file){
   next()
   return
 }

  const extension = req.file.mimetype.split('/')[1]
  req.body.userFile = `${uuid.v4()}.${extension}`
  const photo = await jimp.read(req.file.buffer)
                await photo.resize(500, jimp.AUTO)
                await photo.write(`./public/uploads/${req.body.userFile}`)
  const userimg = photo; 




  console.log(`./public/uploads/${req.body.userFile}`)

  cloudinary.config({
    cloud_name: 'katal',
    api_key: process.env.API_KEY,
    api_secret: process.env.API_SECRET
    }); 

  cloudinary.v2.uploader.upload(`./public/uploads/${req.body.userFile}`,{ 
  transformation: { width:100, height:100}}, function(error, result) { 
  console.log('please show result\t' +JSON.stringify(result))

    const userURL ='vikivivki'



    res.send(result.secure_url)
    console.log(result.secure_url)
})
}

在您的 contactController.js

//contactController.js

const mongoose = require('mongoose')
const Contact = mongoose.model('Contact')
const moment = require('moment-timezone') 
const {userURL} = require('./imageController'); // Please have a check on location if they are in the same directory


exports.contactForm = (req, res) => {
  res.render('contact')
} 

exports.usermessage = async(req, res) => {

      req.body.name =  req.body.name 
      req.body.email = req.body.email 
      req.body.message = req.body.message 
      const ind = moment.tz(Date.now(), "Asia/Calcutta")

      const newContact = new Contact(req.body)
      await newContact.save() 

      console.log('your result',userURL)


      let showResult1 = JSON.stringify(newContact)
      let showResult = JSON.parse(showResult1)
      res.send(showResult.message)

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-30
    • 2013-01-31
    • 1970-01-01
    • 2021-03-18
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 2017-05-02
    相关资源
    最近更新 更多