我做了這個節點的js應用程序,然後我試圖與郵遞員,但每次我提出了涉及mongodb的請求,它不斷加載。模型的函數find是代碼停止的地方,回調從不被調用。無法建立從節點js的mongodb連接
app.js
var express = require("express"),
app = express(),
bodyParser = require('body-parser'),
methodOverride = require('method-override'),
mongoose = require('mongoose');
//Connection to DB
mongoose.connect('mongodb://localhost:27017/users', function(err, res) {
if(err) {
console.log('ERROR: connecting to Database. ' + err);
}
});
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(methodOverride());
var models = require('./models/user')(app, mongoose);
var userContoller = require('./controllers/user');
var router = express.Router();
router.get('/', function(req, res) {
console.log('GET');
res.send("Hello World!");
});
app.use(router);
var users = express.Router();
users.route('/users')
.get(userContoller.findAllUsers);
app.use('/api', users);
app.listen(3000, function() {
console.log("Node server running on http://localhost:3000");
});
型號/ user.js的
exports = module.exports = function(app, mongoose){
var userSchema = new mongoose.Schema({
userName: { type: String },
password: { type: Number }
});
mongoose.model('User', userSchema);
};
控制器/ user.js的
var mongoose = require('mongoose');
var User = mongoose.model('User');
//GET - Return all tvshows in the DB
exports.findAllUsers = function(req, res) {
console.log('llega');
User.find(function(err, users) {
if(err) res.send(500, err.message);
console.log('GET /users')
res.status(200).jsonp(users);
});
};
MongoDB服務器通過控制檯啓動,但我不不知道如何檢查它。
謝謝!
編輯:
我讓代碼更容易測試和解決問題。 現在的代碼是這樣的,我沒有得到與mongodb的連接。
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var db = mongoose.connection;
db.on('error', function() {
console.log('error');
});
db.once('open', function() {
console.log('connected');
});
我沒有得到在控制檯中的錯誤或連接。
在mongod控制檯中,我收到一些消息,指出新建了一個連接。每次我打開nodejs程序時都會發生這種情況。 謝謝
爲什麼jsonp?你的意思是json嗎? –
是快捷函數返回json – Fausto
您可以打開終端並鍵入'mongo'來檢查mongo是否正常工作。 – Finn