javascript - 发布数据未被识别 Node js

标签 javascript node.js mongodb

这是我的 index.js 文件...

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

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'QChat' });
});
router.post('/login', function(req, res) {
  console.log("processing");
  res.send('respond with a resource');
});
module.exports = router;

这是我用来将 POST 数据存储到我的 mongoDB 数据库中的代码。这位于我的 app.js 文件中...

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

db.on('error', console.error);
db.once('open', function() {
    console.log("connected");
    var Schema = new mongoose.Schema({
        mail    : String
    });
    var User = mongoose.model('emp', Schema);
    app.post('/login', function(request, response){
        console.log("here");
        new User({
            mail: request.body.email
        }).save(function(err, doc) {
        if (err)
            res.json(err);
        else 
            console.log('save user successfully...');
        });
    });

代码在到达 app.post 之前工作正常,之后它似乎不会读取其余代码。

我知道我的 index.js 文件有效,因为当我提交表单时,我会到达一个显示respond with a resource 的页面(因为发送函数) .但由于某种原因,app.post 没有被阅读,我是不是错过了什么?

这是我的 jade html,表明我正在正确实现所有内容......

form(class="inputs", action="/login", method="post")
  input(type="text", name="email",class="form-control", id="emailLogin", placeholder="Queen's Email")
  input(type="submit",name = "homePage" class ="loginButton" value="Log In" id="loginButton")

最佳答案

请尝试将以下代码移出db.once('open')

db.on('error', console.error);
db.once('open', function() {});

app.post('/login', function(request, response){
    console.log("here");
    new User({
        mail: request.body.email
    }).save(function(err, doc) {
    if (err)
        res.json(err);
    else 
        console.log('save user successfully...');
    });
});

代码中的另一个问题,请确保 mongoose.model 的第一个参数是 User,否则会弹出一个错误。

var UserSchema = new mongoose.Schema({
    mail    : String
});
var User = mongoose.model('User', UserSchema);

关于javascript - 发布数据未被识别 Node js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35766328/

相关文章:

javascript - 这个函数的时间复杂度是 O(N) 还是 O(N^2)?

javascript - 如何让 slider 在到达最后一张幻灯片后返回到第一张幻灯片,反之亦然

javascript - 包括页面特定 Assets

javascript - 并行执行包含封装生成器的 Promise

javascript 变量到 ejs

node.js - 如何访问node.js中的静态文件

javascript - 为列表 Google map 中的每个纬度、经度创建一个标记

c# - MongoDB 的推送和根在 C# 中的等效项是什么?

Python MongoDB 执行查询

使用 MongoDB 的 Spring Social 和 Spring Security