Должен ли я получить это сообщение TypeError с кодом, который у меня есть? - PullRequest
0 голосов
/ 29 марта 2020

Когда я пытаюсь отправить информацию о своем веб-приложении, я получаю сообщение об ошибке: TypeError: Items.save не является функцией , кто-нибудь знает, как я могу это исправить? Я использую mongoDB в бэкэнде для отправки информации в базу данных из веб-приложения.

Ниже приведен мой код JavaScript:

const express = require('express');
const app = express();
const bodyParser  = require('body-parser');
const mongoose = require('mongoose');
//specify where to find the schema
const Items = require('./models/item')
// connect and display the status 
mongoose.connect('mongodb://localhost:27017/items', { useNewUrlParser: true, useUnifiedTopology: true })
  .then(() => { console.log("connected"); })
  .catch(() => { console.log("error connecting"); });

// use the following code on any request that matches the specified mount path
app.use((req, res, next) => {
   console.log('This line is always called');
   res.setHeader('Access-Control-Allow-Origin', '*'); //can connect from any host
   res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS'); //allowable methods
   res.setHeader('Access-Control-Allow-Headers', 'Origin, Content-Type, Accept');
   next();
});
app.get('/items', (req, res, next) => {
  //call mongoose method find (MongoDB db.Items.find())
  Items.find()
    //if data is returned, send data as a response 
    .then(data => res.status(200).json(data))
    //if error, send internal server error
    .catch(err => {
      console.log('Error: ${err}');
      res.status(500).json(err);
    });
});

  // parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())

// serve incoming post requests to /items
app.post('/items', (req, res, next) => {
// create a new item variable and save request’s fields 
const items = new   Items ({
  itemName: req.body.itemName,
  servings: req.body.servings
});
//send the document to the database 
Items.save()
  //in case of success
  .then(() => { console.log('Success');})
  //if error
  .catch(err => {console.log('Error:' + err);});
  });


//to use this middleware in other parts of the application
module.exports=app;

1 Ответ

0 голосов
/ 29 марта 2020

Пожалуйста, попробуйте items.save() вместо того, что с заглавной буквы I [Items.save()]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...