V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
martin823823
V2EX  ›  问与答

为什么我不能插入数据到 monogdb 中???求解

  •  
  •   martin823823 · 2015-08-28 08:33:27 +08:00 · 2319 次点击
    这是一个创建于 3357 天前的主题,其中的信息可能已经有所发展或是发生改变。

    /**
    * Module dependencies.
    */

    var express = require ('express'),
    routes = require ('./routes'),
    http = require ('http'),
    path = require ('path'),
    mongoose = require ('mongoose');

    var app = express ();
    var db =mongoose.createConnection ('mongodb://localhost/todoo');

    var Schema = mongoose.Schema;
    var ObjectId = Schema.ObjectId;

    var Task = new Schema ({
    task: {type:String}
    });

    var Task = db.model ('Task', Task );

    // all environments

    app.set ('view engine', 'jade');

    app.get ('/tasks', function (req, res ){
    Task.find ({}, function (err, docs ) {
    res.render ('tasks/index', {
    title: 'Todos index view',
    docs: docs
    });
    });
    });

    app.get ('/tasks/new', function (req, res ){
    res.render ('tasks/new.jade', {
    title: 'New Task'
    });
    });
    app.post ('/tasks',function (req, res ){
    var task = new Task (req.body );
    console.log (req.body );
    task.save ({},function (err ) {
    if (!err ) {
    res.redirect ('/tasks');
    }
    else {
    res.redirect ('/tasks/new');
    }
    });
    });

    app.listen (3000,function (err ){
    if (err ){
    console.log (err );
    return err;
    }
    });
    console.log ('the project run 3000');

    14 条回复    2015-08-28 12:30:55 +08:00
    lucker6666
        1
    lucker6666  
       2015-08-28 08:45:56 +08:00
    3.0 or 2.x?

    啥都不说清楚
    martin823823
        2
    martin823823  
    OP
       2015-08-28 08:49:36 +08:00
    这个是什么?本人新手,求指教
    snachx
        3
    snachx  
       2015-08-28 09:19:26 +08:00
    @martin823823 一楼问你 mongodb 的版本是 3.0 还是 2.x
    ChanneW
        4
    ChanneW  
       2015-08-28 09:26:35 +08:00
    console.log (req.body ); 打出来的东西对么?
    ariestiger
        5
    ariestiger  
       2015-08-28 09:31:25 +08:00
    因为你不硬, 因为 mongodb 不湿
    faceair
        6
    faceair  
       2015-08-28 09:42:08 +08:00
    目测是没加 body-parser 中间件 参考 https://github.com/expressjs/body-parser
    martin823823
        7
    martin823823  
    OP
       2015-08-28 10:20:18 +08:00
    3.0 的
    martin823823
        8
    martin823823  
    OP
       2015-08-28 10:22:36 +08:00
    @ChanneW 它原来是 req.body.task 但不行,报错
    martin823823
        9
    martin823823  
    OP
       2015-08-28 10:26:30 +08:00
    @ChanneW Cannot read property 'task' of undefined 报这个错
    EPr2hh6LADQWqRVH
        10
    EPr2hh6LADQWqRVH  
       2015-08-28 10:33:54 +08:00
    6L 正解, req.body 不是凭空出现的,你没装那个中间件
    martin823823
        11
    martin823823  
    OP
       2015-08-28 11:29:32 +08:00
    嗯 现在安装了 但输入的内容在控制台上显示 undefined , 页面也不跳转
    martin823823
        12
    martin823823  
    OP
       2015-08-28 11:30:54 +08:00
    最后页面显示,未收到数据
    plantain
        13
    plantain  
       2015-08-28 12:07:35 +08:00
    安装之后用了没有?
    // parse application/x-www-form-urlencoded
    app.use (bodyParser.urlencoded ({ extended: false }))

    // parse application/json
    app.use (bodyParser.json ())
    martin823823
        14
    martin823823  
    OP
       2015-08-28 12:30:55 +08:00
    @plantain 嗯 正解 能在控制台显示了 为什么没有传导 mongodb 数据库中呢???
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2709 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:21 · PVG 08:21 · LAX 16:21 · JFK 19:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.