首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数不是函数

函数不是函数
EN

Stack Overflow用户
提问于 2018-12-11 13:53:17
回答 1查看 65关注 0票数 0

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

这就是我在我的app.js中所拥有的:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 14:00:35

static之前添加massAdd关键字,使massAdd成为静态方法

这是一个简单的静态方法演示:

代码语言:javascript
复制
class A {
    static doSomething(m) {
        console.log(m);
    }
}

A.doSomething(5); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53725574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档