2016-05-03 75 views
0

認爲它沒有讓我用流派架構 我有2種模式的用戶和流派 用戶模式工作正常,但流派架構是undefind貓鼬和節點JS - 類型錯誤:對象不是一個函數

用戶的問題.js文件 - 架構

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

var Genre = require('../Models/genre'); 

// create a schema 
var userSchema = new Schema({ 
    name: { type: String, required: true, unique: true }, 
    email: { type: String, required: true, unique: true }, 
    password: { type: String, required: true }, 
    age: String, 
    gender: String, 
    genres: [Genre.genreSchema] 
}); 

// the schema is useless so far 
// we need to create a model using it 
var User = mongoose.model('User', userSchema); 

// make this available to our users in our Node applications 
module.exports = User; 

genre.js - 架構

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

// create a schema 
var genreSchema = new Schema({ 
    name: { type: String, required: true, unique: true }, 
    age: String, 
    gender: String 
}); 

// the schema is useless so far 
// we need to create a model using it 
var Genre = mongoose.model('Genre', genreSchema); 

// make this available to our genres in our Node applications 
module.exports = Genre; 

流派控制器 - 路由器---同用戶的路由器控制器

var express = require('express'); 
var bodyParser = require('body-parser'); 
var Genre = require('../Models/genre'); 

// ROUTES FOR OUR API 
// ============================================================================= 
var router = express.Router();    // get an instance of the express Router 

// middleware to use for all requests 
router.use(function(req, res, next) { 
    // do logging 
    console.log('Something is happening.'); 
    next(); // make sure we go to the next routes and don't stop here 
}); 

router.route('/genres') 

    // create a genre 
    .post(function(req, res) { 
     console.log(Genre); 

     **//here is the error when trying to post new genre** 
     var Genre = new Genre(req.body);  // create a new instance of the user model 

     // save the genre and check for errors 
     Genre.save(function(err) { 
      if (err) 
       res.send(err); 

      res.json({ message: 'Genre created!' }); 
     }); 

    }) 

    // get all the genres 
    .get(function(req, res) { 
     Genre.find(function(err, genres) { 
      if (err) 
       res.send(err); 

      res.json(genres); 
     }); 
    }); 

    module.exports = router; 

server.js - 應用JS

var express = require('express'); 
var app = express(); 
var bodyParser = require('body-parser'); 
var userRouter = require('./Controllers/user'); 
var genreRouter = require('./Controllers/genre'); 

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost:27017'); // connect to our datababase 

// configure app to use bodyParser() 
// this will let us get the data from a POST 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 

var port = process.env.PORT || 8080;  // set our port 


// REGISTER OUR ROUTES ------------------------------- 
// all of our routes will be prefixed with /api 
app.use('/api', userRouter); 
app.use('/api', genreRouter); 

// START THE SERVER 
// ============================================================================= 
app.listen(port); 
console.log('see whats happening on port ' + port); 

爲什麼模型undefind只有當我發表新流派?併爲用戶它工作正常? 是模式架構的方式嗎?還是有更好的辦法?

我已經嘗試與只使用流派模型出來的用戶,它仍然同樣的錯誤

我希望我足夠清楚 感謝助理

回答

2

你不應該使用相同的名稱爲模式和新的流派。

嘗試將其更改爲

var newGenre = new Genre(req.body);  // create a new instance of the user model 

    // save the genre and check for errors 
    newGre.save(function(err) { 
     if (err) 
      res.send(err); 

     res.json({ message: 'Genre created!' }); 
    }); 
+0

我知道這應是一種簡單的HAHAH感謝 – Erez