Node.js中的错误导出模块-关注点分离

时间:2019-03-13 20:10:03

标签: javascript node.js mongodb mongoose

我正在尝试通过使用导出模块来实现关注点分离。如果使用时没有引起关注,所有代码都可以正常工作,但是一旦我尝试从generateUrlArray()导入const db = require('../db')时,任何代码都无法正常工作。 Nodejs在后端没有给我任何错误。我在前端遇到的错误是Error: SyntaxError: Unexpected end of JSON input。我肯定该错误来自后端。让我知道您是否有任何想法。

controller.js

const db = require('../db')

exports.getWebApiList = (req, res) => {
  (async function fetchDataList() {
    try {
      const urlArray = await db.generateUrlArray({}, { _id: 0 })
      return res.send(urlArray)
    } catch (ex) {
      console.log(`fetchDataList error: ${ex}`)
    }
  })()
}

.. db / index.js

const { List } = require('./models/List')

const generateUrlArray = (query, projection) => {
  const dataFromDB = List.find(query, projection).select('symbol')
  return linkArray = dataFromDB.map(item => {
    return link = `https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=${item.symbol}&apikey=6BUYSS9QR8Y9HH15`
  })
}

module.exports = { generateUrlArray }

.models / List.js

const mongoose = require('mongoose')
mongoose.Promise = global.Promise
const ParentSchemaSymbolList = new mongoose.Schema({
  symbol: String
})
module.exports.List = mongoose.model('List', ParentSchemaSymbolList)

1 个答案:

答案 0 :(得分:1)

const generateUrlArray = async (query, projection) => {
  const dataFromDB = await List.find(query, projection).select('symbol')
  const linkArray = dataFromDB.map(item => {
    return link = `https://www.alphavantage.co/query?function=GLOBAL_QUOTE&symbol=${item.symbol}&apikey=6BUYSS9QR8Y9HH15`
  })
  return linkArray
}