Как решить "Не могу прочитать свойство 'title' из undefined"? - PullRequest
0 голосов
/ 10 апреля 2020

Я использую Почтальон, чтобы узнать об API. Содержимое моего сервера. js файл находится в коде ниже. Тем не менее, когда я отправляю сообщение через Почтальон, ошибка «Не удается прочитать свойство 'title' of undefined" продолжает отображаться.

var Product = require("./model/product");
var WishList = require("./model/wishlist");

app.post("/product", function (request, response) {
  var product = new Product();
  product.title = request.body.title;
  product.price = request.body.price;
  product.save(function (err, savedProduct) {
    if (err) {
      response.status(500).send({ error: "Could not save product" });
    } else {
      response.status(200).send(savedProduct);
    }
  });
});

app.use(express.json());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

app.listen(3000, function () {
  console.log("Swag Shop API runing on port 3000...");
});

Файл продукта. js содержит код ниже.

var mongoose = require("mongoose");
var Schema = mongoose.Schema;

var product = new Schema({
  title: String,
  price: Number,
  likes: { type: Number, default: 0 },
});

module.exports = mongoose.model("Product", product);

Я попытался отправить следующий файл json через Почтальон, но затем errorType: «Не удалось прочитать свойство title of undefined».

{
    "title": "Test Title",
    "price": 100.00
}

Это папки для просмотра местоположения моих файлов: Папки .

Это решение с использованием npm install express@">=3.0.0 <4.0.0" --save не работает в моем случае. После того, как я использовал это в своем терминале, та же самая ошибка продолжала показывать.

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 10 апреля 2020

Попробуйте это и используйте express.json() или bodyParser.json()

, если вы go в файл node_module/express/lib/express.js, который вы можете увидеть под зависимостями модуля. Модуль body-parser уже импортирован var bodyParser = require('body-parser);

var Product = require("./model/product");
var WishList = require("./model/wishlist");

//app.use(express.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());

 app.post("/product", function (request, response) {
 var product = new Product();
 product.title = request.body.title;
 product.price = request.body.price;
 product.save(function (err, savedProduct) {
  if (err) {
    response.status(500).send({ error: "Could not save product" });
  } else {
    response.status(200).send(savedProduct);
 }
 });
});

app.listen(3000, function () {
  console.log("Swag Shop API runing on port 3000...");
 });
...