我正在尝试构建一个API,但是当我调用.save()或.find()方法时,mongoose没有响应。 它确实连接到本地数据库。我是新手,实际上我今天刚刚安装了mongoDB
这是我的模特:
'use strict';
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var StoreSchema = new Schema({
address: {
type: String
},
name: {
type: String
}
});
module.exports = mongoose.model('Store', StoreSchema);
我的控制器:
'use strict';
var mongoose = require('mongoose'),
Store = mongoose.model('Store');
exports.save = function (req, res) {
var newStore = new Store(req.body);
newStore.save(function (err, store) {
if (err) {
res.send(err);
}
res.json(store);
});
}
我的路线
'use strict';
var errorResponse = require('./../models/response').error;
var successResponse = require('./../models/response').succcess;
var mongoose = require('mongoose');
var Store = require('./../models/store');
module.exports = function (app, appEnv) {
var routes = appEnv.routes;
var store = require('./../controllers/storeController');
routes.route('/stores')
.post(store.save);
}
和我的服务器:
var express = require('express'),
app = express(),
bodyParser = require('body-parser'),
mongoose = require('mongoose'),
port = process.env.PORT || 8080,
stores = require('./app/models/store'),
mongoURL = '127.0.0.1:27017/',
dbName = 'storesDB';
mongoose.Promise = global.Promise;
mongoose.connect(`mongodb://${mongoURL}${dbName}`);
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var routes = express.Router();
const appEnv = {
routes: routes
};
require('./app/routes')(app, appEnv);
app.use('/server', routes);
app.listen(port);
console.log('API listening on port' + port);
每件事都很好但是当我做newStores.save()时它没有做任何事情 我需要配置什么或什么? 我是mongodb的新手,今天就装好了。
请帮助!!!!
答案 0 :(得分:2)
您需要访问控制器中的模型
<强> controller.js 强>
'use strict';
var mongoose = require('mongoose'),
var Store = require('your model.js file path');
exports.save = function (req, res) {
var newStore = new Store(req.body);
newStore.save(function (err, store) {
if (err) {
res.send(err);
}
res.json(store);
});
}
你的路线文件就像
<强> route.js 强>
var express = require('express');
var store = require('your controller.js file path');
var router = express.Router();
routes.route('/stores')
.post(store.save);
}