无法使用MongoDB和Node.js登录

Could not login using MongoDB and Node.js

本文关键字:Node js 登录 MongoDB      更新时间:2023-09-26

我无法使用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方法的控制台部分根本没有执行。请帮我解决这个错误

我已经测试了你的代码和它的工作对我来说很好,从视频收集返回用户记录。请检查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插件)来测试你的api。