使用nodejs创建api时,引用错误:schema未定义

时间:2016-12-03 15:02:20

标签: node.js mongoose

我想在Postman上使用get方法获取信息。但每当我" localhost:3000 / api / mekanlar / mekan's objectid "时,我都会收到参考错误" Mekan is未定义"。这是我在/ app_api / models中的mekansema.js文件。

var mongoose = require('mongoose');

var saatSema = new mongoose.Schema({
  gunler: {type: String, required: true},
  acilis: String,
  kapanis: String,
  kapali: {type: Boolean, required: true} 
});

var yorumSema = new mongoose.Schema({
  ad: String,
  puan: {type: Number, required: true, min:0, max:5},
  yorumMetni: String,
  saat: {type: Date, default: Date.now}
});

var mekanSema = new mongoose.Schema({
  ad: {type: String, required: true},
  adres: String,
  puan: {type: Number, default:0, min:0, max:5},
  imkanlar: [String],
  mesafe: {type: [Number], index:'2dsphere'},
  saat: [saatSema],
  yorumlar: [yorumSema]
});
mongoose.model('Mekan', mekanSema, 'Mekanlar');

和/ app_api / controllers中的mekanlar.js文件

var mongoose = require('mongoose');
var mekan = mongoose.model('Mekan');

var jsonCevapYolla = function(res, status, content){
  res.status(status);
  res.json(content);
};
module.exports.mekanGetir = function(req, res){
if (req.params && req.params.mekanid){
Mekan
 .findById(req.params.mekanid)
 .exec(function(hata, mekan){
if(!mekan){
  jsonCevapYolla(res, 404, {
      "mesaj" : "mekanid bulunamadı."
});
return;
}
else if(hata){
jsonCevapYolla(res, 404, hata);
return;
}
jsonCevapYolla(res, 200, mekan);
});
}
else{
   jsonCevapYolla(res, 404, {
     "mesaj" : "istekte mekanid yok"
   });
}
};  

这是/ app_api / routes中的index.js。

var express = require('express');
var router = express.Router();
var ctrlMekanlar = require('../controllers/mekanlar');
var ctrlYorumlar = require('../controllers/yorumlar');

//Mekan Rotaları
//router.get('/mekanlar', ctrlMekanlar.mekanlariListele);
//router.post('/mekanlar', ctrlMekanlar.mekanEkle);
router.get('/mekanlar/:mekanid', ctrlMekanlar.mekanGetir);
//router.put('/mekanlar/:mekanid', ctrlMekanlar.mekanGuncelle);
//router.delete('/mekanlar/:mekanid', ctrlMekanlar.mekanSil);

//Yorum Rotaları
//router.post('/mekanlar/:mekanid/yorumlar', ctrlYorumlar.yorumEkle);
//router.get('/mekanlar/:mekanid/yorumlar/:yorumid',    ctrlYorumlar.yorumGetir);
//router.put('/mekanlar/:mekanid/yorumlar/:yorumid',    ctrlYorumlar.yorumGuncelle);
//router.delete('/mekanlar/:mekanid/yorumlar/:yorumid', ctrlYorumlar.yorumSil);

module.exports = router;

1 个答案:

答案 0 :(得分:0)

很难看出问题出在哪里,因为你没有提供堆栈跟踪。但我想在这一行:

Mekan
 .findById(req.params.mekanid)

Mekan应为mekan