簡體   English   中英

MEAN Stack:無法讀取未定義的屬性“ companyTitle”

[英]MEAN Stack: Cannot read property 'companyTitle' of undefined

我已經在MongoDB數據庫中創建了一個名為joblist的集合。 我還創建了一個名為jobList.js的數據庫模式

var mongoose = require('mongoose');

const joblistSchema = mongoose.Schema({
    companyTitle: String,
    jobTitle: String,
    location: String,
});

const JlSchema = module.exports = mongoose.model('JlSchema',joblistSchema,'joblist');

這是我正在使用路線的路線文件夾users.js

const jobList = require('../models/jobList');
//post joblist
router.post('/appliedjobs', function(req,res) {
  console.log('posting');
  jobList.create({
    companyTitle: req.body.companyTitle,
    jobTitle: req.body.jobTitle,
    location: req.body.location
  },function(err,list) {
    if (err) {
      console.log('err getting list '+ err);
    } else {
      res.json(list);
    }
  }
  );
});
//getting joblistlist
router.get('/appliedjobs',function(req,res) {
  console.log('getting list');
  jobList.find(function(err,list) {
    if(err) {
      res.send(err);
    } else {
      res.json(list);
    }
  });
});

我已經通過使用mongodb cmd手動在數據庫中插入了一些數據。我可以通過GET方法從

HTTP://本地主機:3000 / API / appliedjobs

但是當我嘗試使用郵遞員post一些數據時,發布時出現錯誤

TypeError:無法在Layer.handle處D:\\ product \\ project-1 \\ routes \\ users.js:115:28讀取未定義的屬性'companyTitle'[作為handle_request](D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ layer.js:95:5)在Route.dispatch(D:\\ product下)(D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ route.js:137:13) \\ Project-1 \\ node_modules \\ express \\ lib \\ router \\ route.js:112:3)[作為handle_request](D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ layer.js :95:5)在D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ index.js:281:22在Function.process_params(D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\在下一個(D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ index.js:275:10)下的Router \\ index.js:335:12)在D:\\ product \\ project-1 \\ routes \\在layer.handle處的users.js:15:3 [作為handle_request](D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ layer.js:95:5)在trim_prefix(D:\\ product \\ project -1 \\ node_modules \\ express \\ lib \\ router \\ index.js:317:13)位於D:\\ product \\ project-1 \\ node_mo 接下來在Function.process_params(D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ index.js:335:12)處的dules \\ express \\ lib \\ router \\ index.js:284:7(D: \\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ index.js:275:10)在Function.handle(D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ index.js:174 :3)在路由器(D:\\ product \\ project-1 \\ node_modules \\ express \\ lib \\ router \\ index.js:47:12)

我不知道我的代碼有什么問題。 有人可以幫忙嗎? 我想要獲取數據並將其發布到名為joblist集合中。

請測試需求體

var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

然后在您的路由器中

router.post('/appliedjobs', function(req,res) {
      console.log(JSON.parse(req.body));

})

和郵遞員套裝

“內容類型” =“應用/ JSON”

並在正文中選擇類型為

“原始”和“ JSON(application / json)”

這應該工作

您是否安裝了正文解析器?

這曾經是express的一部分,但現在您必須單獨安裝。

因此,首先安裝它:

npm install --save body-parser

然后要求它:

var bodyParser = require('body-parser');
var app = express();

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM