2014-12-22 1 views
-2

현재 나는 book이라는 제목을 따르고 있습니다. 내 코드는 다음과 같습니다 (지금까지 완벽하게 일치하는 것을 볼 수있는 한 책에서). 이것이 내가 쉽게 검색 할 수있는 것이라면 사과드립니다.하지만 솔직히 다른 답변도 이해할 수 없으므로 사과 드리겠습니다. 책에서 코드를 확인하고 다시 확인하면 내가 가진 모든 오류가 표시되지 않습니다. 내가 사용평균 웹 개발

평균 스택 (내가 알고 아니었다 개 이상이 있었다)

오류 메시지 (죄송합니다 제가 처음이 깜빡 믿을 수 없어)

MongoDB를 익스프레스 AngularJS와 및 Nodejs

입니다 그것은이 모든 차이를 만드는 경우
e:\MEAN\node_modules\mongoose\lib\index.js:323 
    throw new mongoose.Error.MissingSchemaError(name); 
     ^
MongooseError: Schema hasn't been registered for model "User". 
Use mongoose.model(name, schema) 
    at Mongoose.model (e:\MEAN\node_modules\mongoose\lib\index.js:323:13) 
    at Object.<anonymous> (e:\MEAN\app\controllers\users.server.controller.js:1:94) 
    at Module._compile (module.js:460:26) 
    at Object.Module._extensions..js (module.js:478:10) 
    at Module.load (module.js:355:32) 
    at Function.Module._load (module.js:310:12) 
    at Module.require (module.js:365:17) 
    at require (module.js:384:17) 
    at Object.<anonymous> (e:\MEAN\app\routes\users.server.routes.js:1:75) 
    at Module._compile (module.js:460:26) 
    at Object.Module._extensions..js (module.js:478:10) 

는 디렉토리 구조를

app/ 
    controllers/ 
     users.server.controllers.js 
    models/ 
     user.server.model.js 
    routes/ 
     users.server.routes.js 
config/ 
    express.js 
    mongoose.js 

express.js입니다

,536,913 63,210
var config = require('./config'), 
express = require('express'), 
morgan = require('morgan'), 
compress = require('compression'), 
bodyParser = require('body-parser'), 
methodOverride = require('method-override'), 
session = require('express-session'); 

module.exports = function() { 
    var app = express(); 
    if (process.env.NODE_ENV === 'development') { 
     app.use(morgan('dev')); 
    } else if (process.env.NODE_ENV === 'production') { 
     app.use(compress()); 
    } 

    app.use(bodyParser.urlencoded({extended:true})); 
    app.use(bodyParser.json()); 
    app.use(methodOverride()); 
    app.use(session({ 
     saveUninitialized: true, 
     resave: false, 
     secret: config.sessionSecret 
    })); 

    app.set('views', './app/views'); 
    app.set('view engine', 'ejs'); 

    require('../app/routes/index.server.routes.js')(app); 
    require('../app/routes/users.server.routes.js')(app); 

    app.use(express.static('./public')); 

    return app; 
}; 

mongoose.js

var config = require('./config'), 
mongoose = require('mongoose'); 

module.exports = function() { 
    var db = mongoose.connect(config.db); 
    require('../app/models/user.server.model'); 
    return db; 
} 

user.server.model.js

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

UserSchema = new Schema({ 
    firstName: String, 
    lastName: String, 
    email: String, 
    username: String, 
    password: String 
}); 

mongoose.model('User', UserSchema); 

users.server.controllers.js

var User = require('mongoose').model('User'); 

exports.create = function(req, res, next) { 
    var user = new User(req.body); 
    user.save(function(err) { 
     if (err) { 
      return next(err); 
     } else { 
      res.json(user); 
     } 
    }) 
}; 

users.server.routes.js

var users = require('../../app/controllers/users.server.controller'); 

module.exports = function (app) { 
    app.route('/users').post(users.create); 
} 
+4

죄송하지만 무슨 문제입니까? –

+0

정확히 어떤 문제가 발생합니까? –

+0

또한 이것이 MEAN 프레임 워크 인 경우 어느 것을 지정해야합니까 – charlietfl

답변

1

server.js에 쉼표가 없습니다. 무엇이 나를 확인하게 만들 었는지는 모르지만 그것이 내 문제였다.