javascript - 无法将数据添加到mongoDB

标签 javascript node.js mongodb

我正在使用Mongoose创建架构,并尝试通过Postman将数据添加到mongoDB,它正在向db添加空数据。我假设我的问题是从浏览器到服务器的数据解析方式,这是我的app.js设置。

什么添加到数据库

{ "_id" : ObjectId("57846282c7b5f51d4c1742a9"), "__v" : 0 }


这是app.js文件

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var multer  =   require('multer');        
var routes = require('./routes/index');
var mongoose = require('mongoose');
var db = mongoose.connection;
mongoose.connect('mongodb://localhost/growlingRabbit');
var Page = require('./models/growling_rabbit_page_text.js');

var app = express();


// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// uncomment after placing your favicon in /public
//app.use(favicon(__dirname + '/public/favicon.ico'));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true}));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);


var storage =   multer.diskStorage({
  destination: function (req, file, callback) {
    callback(null, './uploads');
  },
  filename: function (req, file, callback) {
    callback(null, file.fieldname + '-' + Date.now());
  }
});
var upload = multer({ storage : storage}).single('userPhoto');

app.post('/api/photo',function(req,res){
    upload(req,res,function(err) {
        if(err) {
            return res.end("Error uploading file.");
        }
        res.end("File is uploaded");
    });
});

app.post('/api/text',function(req,res){
    var text = new Page();     
        text.name = req.body.name;  

        text.save(function(err) {
            if (err)
                res.send(err);

            res.json({ message: 'Text Added!' });
        });

});



// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});


module.exports = app;


这是模型

var mongoose = require('mongoose');
var Schema       = mongoose.Schema; 
var pageSchema   = new Schema({
    homePage: String,
    communityPage: String,
    eventPage: String,
    contactPage: String,
    galleryPage: String });

module.exports = mongoose.model('Page', pageSchema);;


帮忙,我确定这很痛苦,很遗憾,我找不到。

最佳答案

好吧,您创建一个Page

var text = new Page();     
text.name = req.body.name;


但是您的架构没有name属性。
像这样更改架构:

var pageSchema = new Schema({
    name: String,
    homePage: String,
    communityPage: String,
    eventPage: String,
    contactPage: String,
    galleryPage: String });




另一个问题可能是使用错误的选项通过Postman发布数据。
测试节点API时,请确保使用x-www-form-urlencoded

Postman

关于javascript - 无法将数据添加到mongoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38319562/

相关文章:

node.js - 如何使用 Q 正确中止 node.js promise 链?

javascript - Heroku文件上传和node.js

javascript - 是否可以防止导入的javascript代码修改我的dom

javascript - 在快速路由中使用身份验证功能

javascript - 在freemarker模板中有条件地显示行

sql - MongoDB : few questions

java - spring-data-mongodb 可选查询参数

mongodb - 如何更新 mongo 对象

javascript - 使用 ng-if 时 ng-click 停止工作

javascript - 在父级具有隔离范围的 Angular Directive(指令)上更改父级范围变量