2015-07-29 3 views
0

Я не смог войти в систему с помощью MongoDB и Node.js.It не выдавал никаких ошибок, но не смог предоставить какие-либо данные, которые пользователь хочет после входа в систему. Я объясняю свой код ниже.Не удалось войти в систему с помощью MongoDB и Node.js

server.js

var port=8888; 
var express=require('express'); 
var morgan = require('morgan'); 
var http=require('http'); 
var bodyParser= require('body-parser'); 
var methodOverride = require('method-override'); 
var mongo = require('mongojs'); 
var database='Oditek'; 
var collections=['video']; 
var app= express(); 
var server=http.createServer(app); 
var io=require('socket.io')(server); 
var db = mongo("127.0.0.1:27017/"+database, collections); 
app.use(express.static(__dirname + '/public'));  // set the static files location /public/img will be /img for users 
app.use(morgan('dev'));      // log every request to the console 
app.use(bodyParser.urlencoded({ extended: false })) // parse application/x-www-form-urlencoded 
app.use(bodyParser.json()) // parse application/json 
app.use(methodOverride());     // simulate DELETE and PUT 
app.get('/',function(req,res){ 
    res.sendfile('view/login.html'); 
}); 
app.post('/login',function(req,res){ 
    var username=req.body.username; 
    var password=req.body.userpassword; 
    if(username && password){ 
     db.video.findOne({ 
      username:username, 
      password:password 
     },function(err,doc){ 
      console.log('login',doc); 
      if(doc){ 
      res.send(doc); 
      } 
      if(err){ 
       console.log('login',err); 
       res.send("could not login"); 
      } 
     }); 
    } 
}); 
app.get('/video',function(req,res){ 
    res.sendfile('view/video.html'); 
}); 
server.listen(port); 
console.log('server is listening on the port'+port); 

login.js:

function login(){ 
    var uName=$('#uname').val(); 
    var uPass=$('#upass').val(); 
    var data={username:uName,userpassword:uPass}; 
    $.ajax({ 
     type: 'POST', 
     url:"/login", 
     data:data, 
     success: function(data){ 
      console.log(data); 
      location.href="http://localhost:8888/video?usertype='+data.type+' & id= '+data.id+' "; 
     } 
    }); 
} 

Package.json:

{ 
    "name": "oditek", 
    "main": "server.js", 
    "dependencies": { 
    "express": "~4.0.0", 
    "morgan": "~1.0.0", 
    "body-parser": "~1.0.0", 
    "method-override": "~1.0.0", 
    "socket.io":"1.3.5", 
    "mongojs": "1.2.1" 
    } 
} 

Консольная часть метода app.post на стороне сервера вообще не выполняется. Пожалуйста, помогите мне решить эту ошибку.

ответ

0

Я проверил ваш код и его работоспособность для меня, вернув запись пользователя из коллекции видео. Можете ли вы проверить, работает ли mongodb, и вы также можете увидеть, добавив эти строки.

db.runCommand({ping: 1}, function (err, res) { if(!err && res.ok) console.log('we\'re up')}); 

Я проверил ваш код и возвращая мне хорошо, попробуйте изменить это:

app.use(bodyParser.urlencoded({ extended: true})); // parse   application/x-www-form-urlencoded 
    app.use(bodyParser.json()); 

Пожалуйста, проверьте в журналах, морган пишет журналы на нет, когда вы нажмете URL, пожалуйста, сначала проконсультируйтесь с почтальон (chrome plugin), чтобы проверить ваш api.

Смежные вопросы