使用Node将post数据插入mongoDB

Bol*_*boa 3 javascript mongodb node.js

我是节点JS和mongo的新手.

我正在一个将用户信息存储在我的数据库中的个人网站上工作.

为简单起见,假设我在玉器中有以下形式......

form(class="inputs", action="/login", method="post")
    input(type="text", name="email",class="form-control", id="emailLogin", placeholder="Queen's Email")
Run Code Online (Sandbox Code Playgroud)

我已经建立了一个数据库,我可以使用以下javascript连接到它...

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/user');
var db = mongoose.connection;

db.on('error', console.error);
db.once('open', function() {
    // Create your schemas and models here.
});
Run Code Online (Sandbox Code Playgroud)

我想email为每个使用上面的表单注册的用户存储输入.

我猜我首先要创建一个可能看起来像这样的架构,但我不确定......

var Schema = mongoose.Schema;

var userSchema = new Schema({
    email: String
});
//I think I have to create a model too?
Run Code Online (Sandbox Code Playgroud)

为了获得POST数据,我想我需要一些看起来像这样的代码......

app.post('/login', function(request, response){
//I am not sure what to put inside
});
Run Code Online (Sandbox Code Playgroud)

我的问题是,有人可以告诉我如何一起实现所有这些,以便每次用户注册他们的电子邮件,它都保存在数据库中.很难对此进行研究,并多次尝试和失败.

编辑

这是我的index.js档案......

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'QChat' });
});

module.exports = router;
Run Code Online (Sandbox Code Playgroud)

另外,这是我的routes目录中的另一个文件users.js,我不知道它的目的是什么......

var express = require('express');
var router = express.Router();

/* GET users listing. */
router.get('/', function(req, res, next) {
  res.send('respond with a resource');
});

module.exports = router;
Run Code Online (Sandbox Code Playgroud)

zan*_*ngw 6

以下是一些示例代码,希望它可以帮助您.

var userSchema = new Schema({
    email: String
});

var User = mongoose.model('User', userSchema);

app.post('/login', function(request, response){
    var u = new User({
        email: request.body.name
    });

    u.save(function(err) {
        if (err)
           throw err;
        else 
           console.log('save user successfully...');
    });
});
Run Code Online (Sandbox Code Playgroud)

另外要正确解析帖子网址,可以在这里使用express,示例代码如下.

var bodyParser = require('body-parser')
app.use( bodyParser.json() );       // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
  extended: true
})); 
Run Code Online (Sandbox Code Playgroud)