我是新的nodejs,所以我有應用程序,現在與mongodb連接我有api getAllDiagrams
在應該發送所有圖數據到客戶端的路由器,我試圖實現的方法是我想從控制器調用數據庫,一旦我有數據我會要求在路由器和發送給客戶端,下面的代碼我不能使它的工作,並得到錯誤then is not defined
。任何想法是什麼實施錯誤或任何更好的方式來使用這種方法。如何使用mongoose模式獲取數據並將其發送給客戶端?
app.js
var express = require('express');
var app = express();
var router = express.Router();
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost:27017/develop-modeler');
require('./server/api/diagram/diagram.model.js');
mongoose.connection.on('error', function(err) {
console.error('MongoDB connection error: ' + err);
});
app.use(express.static(path.join(__dirname, 'public')));
app.listen(8760, function() {
console.log('I am listening 8760...');
})
diagram.controller.js
var Diagram = require('./diagram.model');
var mongoose = require('mongoose');
module.exports = function index(req, res) {
Diagram.find({}, function(err, result) {
if (!err) {
console.log('Response from controller', result);
return res.send(result);
}
});
}
diagram.model.js
var mongoose = require('mongoose');
/*var User = require('../user/user.model.js');
var Group = require('../group/group.model.js');*/
var DiagramSchema = new mongoose.Schema({
text: String,
owner: {type: String, ref:'User'},
groups: [{type: String, ref: 'Group'}],
users: [{type: String, ref: 'User'}],
string: String
});
mongoose.model('Diagram', DiagramSchema);
router.js
var express = require('express');
var controller = require('./diagram.controller');
var router = express.Router();
console.log('THis is in router',controller.index());
router.get('/getAllDiagram',controller.index());
/*router.get('/', controller.index);*/
module.exports = router;
爲什麼玉使用'Diagram.find.then'在查詢是否有任何承諾您使用的? – abdulbarik
我沒有使用任何承諾,所有的代碼被粘貼的問題。 – hussain