我实际上遵循了nodejs,express和mongo的培训。
我开发了一个rest webservice但是当我尝试访问它时,我有当前的例外:
TypeError:对象#没有方法'找到'
我不明白究竟发生了什么,因为我的代码看起来是正确的,与教程中的相同。
架构定义
var mongoose = require('mongoose'),
Schema = mongoose.Schema;
var bookModel = new Schema({
title:{
type:String
},
author:{type:String},
genre:{type:String},
read:{type:Boolean,default:false}
});
module.export= mongoose.model('Book',bookModel);
我的服务定义
var express = require('express'),
mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/bookAPI');
var Book = require('./models/bookModel');
var app = express();
var port = process.env.PORT || 3000;
var bookRouter = express.Router();
bookRouter.route('/books')
.get(function(req,res){
Book.find(function(err,books){
if(err)
console.log(err);
else
res.json(books);
});
});
app.use('/api', bookRouter);
app.get('/',function(req,res){
res.send('welcome to my api 2000');
})
app.listen(port, function(){
console.log('Running on PORT: ' +port);
});
答案 0 :(得分:1)
试试这个:
var Book= mongoose.model('Book',bookModel);
导出模块,如下所示:
module.exports = {
Book: Book
};
使用以下代码导入:
var Book = require('./models/bookModel').Book;
写完查询后
Book.find({},function(err,books){
if(err)
console.log(err);
else
res.json(books);
});