函数不是函数

G.巴兰科

我正在尝试使用 NodeJS/Express 编写应用程序。当调用 MealApi.massAdd 方法时,我有一个响应MealApi.massAdd is not a function但我不明白为什么。有人可以向我解释这种奇怪的行为吗?

这是我在我的app.js

const express = require('express')
const bodyParser = require('body-parser')
const cors = require('cors')
const morgan = require('morgan')
const mongoose = require('mongoose')
const MealApi = require('./api/meal')
const mealModel = require('../models/meal')

// Create connection to MongoDB
mongoose.connect('mongodb://localhost:27017/diet')

let db = mongoose.connection
db.on('error', console.error.bind(console, 'connection error'))
db.once('open', (callback) => {
   console.log('connection succeeded')
})

// Create Express app
const app = express()
app.use(morgan('combined'))
app.use(bodyParser.json())
app.use(cors())

app.post('/meals/massAdd', (req, res) => {
  res.send(MealApi.massAdd(req.body.meals))
})

这是我的api/meal.js

const MealModel = require('../../models/meal')

class Meal {
  massAdd (meals) {
    meals.forEach((meal) => {
      let model = new MealModel(meal)
      model.save((error) => {
        if (error) { console.error(error) }
          return {
            success: true,
            message: 'Meal ' + meal.name + ' successfully added !'
        }
      })
    })
  }
}

module.exports = Meal

非常感谢你

慧萨摩

staticmassAdd使massAdd是静态方法之前添加关键字

这是为您提供的简单静态方法演示:

class A {
    static doSomething(m) {
        console.log(m);
    }
}

A.doSomething(5); 

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章