2016-03-10 43 views
-1

我想让我的html页面与mongodb互动。当我在html页面中输入值时,值应该存储在mongodb中,但这不会发生。请帮助我。下面是我的代码。Html页面与mongodb互动

var express = require('express'); 

var app = express(); 
var mongoose=require('mongoose'); 

var url='mongodb://localhost:27017/logindb'; 


mongoose.connect(url); 

app.get('/login.html', function (req, res) { 
res.sendFile(__dirname + "/" + "login.html"); 
}) 
app.post('/', function (req, res) { 
    res.end('success'); 


    var loginSchema=mongoose.Schema({ 
     username:String, 
     password:String}); 

     console.log("insert"); 

    var Book=mongoose.model('book',loginSchema,"reg"); 
    console.log("schema"); 
    var db=mongoose.connection; 
    console.log("conne"); 
    db.on('error',console.error.bind(console,'connection error:')); 
    console.log("error"); 
    db.once('open',function(){ 
    console.log("connect to DB"); 

     var book1=new Book({username:res.body.username, 
         password:res.body.password}); 
    book1.save(function(err){ 
     if(err) throw err; 
     console.log("Login saved succesfully"); 
    }); 
}); 
}); 
app.listen(8000, function() { 
    console.log("Server is running!"); 
}); 
+0

不能直接从你的HTML数据存储到数据库中,你必须张贴的JSON来存储您的JSON的API。您可以使用像angularJS这样的JavaScript库将数据绑定到html并重用它。 –

回答

0

你必须调整你的代码四个问题:

1. res.end('success');必须在里面你保存回调

2.you必须使用req.body访问请求主体使用快递不res.body

3.不使用db.once发帖时( '开放式'因为ŧ他连接到数据库已经打开at mongoose.connect(url);

4.您的模式必须仅实例化一次,因此它必须全局实例化。

所以,你的代码将是这样的:

var express = require('express'); 

    var app = express(); 

    var mongoose = require('mongoose'); 

    var url = 'mongodb://localhost:27017/logindb'; 

    var loginSchema = mongoose.Schema({ 
     username: String, 
     password: String 
    }); 

    mongoose.connect(url); 

    app.get('/login.html', function(req, res) { 
     res.sendFile(__dirname + "/" + "login.html"); 
    }) 

    app.post('/', function(req, res) { 

     var Book = mongoose.model('book', loginSchema); 

     var book1 = new Book({ 
      username: req.body.username, 
      password: req.body.password 
     }); 
     book1.save(function(err) { 
      if (err) throw err; 
      console.log("Login saved succesfully"); 
      res.end('success'); 
     }); 
    }); 

    app.listen(8000, function() { 
     console.log("Server is running!"); 
    });