存在mongoDB JSONFormat问题的节点

存在mongoDB JSONFormat问题的节点,json,node.js,mongodb,mongoose,Json,Node.js,Mongodb,Mongoose,我是NodeJS和MongoDb的新手。我面临一个关于jsonObject的问题 步骤1:我已经在我的ubuntu 16.04系统中成功安装了NodeJS和MongoDB 步骤2:我在我的项目文件夹中创建了带有package.json文件的所有服务器设置 步骤3:我创建了server.js文件,如下所示 server.js文件 express = require('express'), routes = require('./api/routes/todoListRoutes')

我是NodeJS和MongoDb的新手。我面临一个关于jsonObject的问题

步骤1:我已经在我的ubuntu 16.04系统中成功安装了NodeJS和MongoDB

步骤2:我在我的项目文件夹中创建了带有package.json文件的所有服务器设置

步骤3:我创建了server.js文件,如下所示

server.js文件

    express = require('express'),
    routes = require('./api/routes/todoListRoutes');
    mongoose = require('mongoose'),
    Task = require('./api/models/todoListModels'),
    bodyParser = require('body-parser');
    app = express(),
    port = process.env.PORT || 3000,
    mongoose.Promise = global.Promise;
    mongoose.connect('mongodb://localhost/Tododb');
    app.use(bodyParser.urlencoded({ extended: true }));
    app.use(bodyParser.json());
    routes(app);
    app.listen(port);
    console.log('todo list RESTful API server started on: ' + port);
然后我创建了用于存储记录的模型文件

todoListModels.js

    'use strict';
    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;


    var TaskSchema = new Schema({
      name: {
        type: String,
        Required: 'Kindly enter the name of the task'
      },
      Created_date: {
        type: Date,
        default: Date.now
      },
      status: {
        type: [{
          type: String,
          enum: ['pending', 'ongoing', 'completed']
        }],
        default: ['pending']
      }
    },{ versionKey: false }//Updated);

    module.exports = mongoose.model('Tasks', TaskSchema);
'use strict';
module.exports = function(app) {
  var todoList = require('../controllers/todoListController');
  app.route('/tasks').get(todoList.list_all_tasks).post(todoList.create_a_task);
  app.route('/tasks/:taskId').get(todoList.read_a_task).put(todoList.update_a_task).delete(todoList.delete_a_task);
};
'use strict';


mongoose = require('mongoose'),
Task = mongoose.model('Tasks');

exports.list_all_tasks = function(req, res) {
  Task.find({}, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};

exports.create_a_task = function(req, res) {
  var new_task = new Task(req.body);
  new_task.save(function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};


exports.read_a_task = function(req, res) {
  Task.findById(req.params.taskId, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};


exports.update_a_task = function(req, res) {
  Task.findOneAndUpdate(req.params.taskId, req.body, {new: true}, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};


exports.delete_a_task = function(req, res) {
  Task.remove({
    _id: req.params.taskId
  }, function(err, task) {
    if (err)
      res.send(err);
    res.json({ message: 'Task successfully deleted' });
  });
};
todoListRoutes.js

    'use strict';
    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;


    var TaskSchema = new Schema({
      name: {
        type: String,
        Required: 'Kindly enter the name of the task'
      },
      Created_date: {
        type: Date,
        default: Date.now
      },
      status: {
        type: [{
          type: String,
          enum: ['pending', 'ongoing', 'completed']
        }],
        default: ['pending']
      }
    },{ versionKey: false }//Updated);

    module.exports = mongoose.model('Tasks', TaskSchema);
'use strict';
module.exports = function(app) {
  var todoList = require('../controllers/todoListController');
  app.route('/tasks').get(todoList.list_all_tasks).post(todoList.create_a_task);
  app.route('/tasks/:taskId').get(todoList.read_a_task).put(todoList.update_a_task).delete(todoList.delete_a_task);
};
'use strict';


mongoose = require('mongoose'),
Task = mongoose.model('Tasks');

exports.list_all_tasks = function(req, res) {
  Task.find({}, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};

exports.create_a_task = function(req, res) {
  var new_task = new Task(req.body);
  new_task.save(function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};


exports.read_a_task = function(req, res) {
  Task.findById(req.params.taskId, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};


exports.update_a_task = function(req, res) {
  Task.findOneAndUpdate(req.params.taskId, req.body, {new: true}, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};


exports.delete_a_task = function(req, res) {
  Task.remove({
    _id: req.params.taskId
  }, function(err, task) {
    if (err)
      res.send(err);
    res.json({ message: 'Task successfully deleted' });
  });
};
todoListController.js

    'use strict';
    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;


    var TaskSchema = new Schema({
      name: {
        type: String,
        Required: 'Kindly enter the name of the task'
      },
      Created_date: {
        type: Date,
        default: Date.now
      },
      status: {
        type: [{
          type: String,
          enum: ['pending', 'ongoing', 'completed']
        }],
        default: ['pending']
      }
    },{ versionKey: false }//Updated);

    module.exports = mongoose.model('Tasks', TaskSchema);
'use strict';
module.exports = function(app) {
  var todoList = require('../controllers/todoListController');
  app.route('/tasks').get(todoList.list_all_tasks).post(todoList.create_a_task);
  app.route('/tasks/:taskId').get(todoList.read_a_task).put(todoList.update_a_task).delete(todoList.delete_a_task);
};
'use strict';


mongoose = require('mongoose'),
Task = mongoose.model('Tasks');

exports.list_all_tasks = function(req, res) {
  Task.find({}, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};

exports.create_a_task = function(req, res) {
  var new_task = new Task(req.body);
  new_task.save(function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};


exports.read_a_task = function(req, res) {
  Task.findById(req.params.taskId, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};


exports.update_a_task = function(req, res) {
  Task.findOneAndUpdate(req.params.taskId, req.body, {new: true}, function(err, task) {
    if (err)
      res.send(err);
    res.json(task);
  });
};


exports.delete_a_task = function(req, res) {
  Task.remove({
    _id: req.params.taskId
  }, function(err, task) {
    if (err)
      res.send(err);
    res.json({ message: 'Task successfully deleted' });
  });
};
然后我通过nodemon server.js运行节点服务器 服务器已成功运行。 然后,我尝试使用POST MAN应用程序从数据库中获取数据

所以,我确实喜欢下面的内容

[
  {
  "_id": "58ba4c9c03e10b16d140775f",
   "name": "Karthik",
   "__v": 0,
   "status": [
   "pending"
  ],
  "Created_date": "2017-03-04T05:11:56.590Z"
}]
获取方法:localhost:3000/任务

它成功地运行并产生了结果

如下图所示

[
  {
  "_id": "58ba4c9c03e10b16d140775f",
   "name": "Karthik",
   "__v": 0,
   "status": [
   "pending"
  ],
  "Created_date": "2017-03-04T05:11:56.590Z"
}]
我的问题是

1) 我没有在这里创建\uvid字段。那它为什么会来呢? 2) 然后,我需要在创建日期字段中使用正确的日期格式。比如“dd-MM-yyy-hh:MM”。怎么做

谢谢你的帮助

更新

当我尝试安装时,出现以下错误

notsup跳过可选依赖项:不支持的平台fsevents@1.1.1:通缉{“os”:“darwin”,“arch”:“any”}(当前:{“os”:“linux”,“arch”:“x64”})

这是默认情况下mongodb为插入的每个文档创建的唯一id,mongo将创建一个_id,默认情况下设置为索引键

如需更多参考,请阅读

versionKey是Mongoose首次创建每个文档时设置的属性。此键值包含文档的内部版本。versionKey选项是一个字符串,表示用于版本控制的路径


是mongodb保存日期的默认格式。Mongodb使用ISO格式存储日期。如果您想以这种方式保存文档,您可以以字符串格式存储日期,但也可以以ISO格式保存,但在获取文档时,您可以使用诸如显示所需格式的日期之类的模块。

如何从json中删除?如何设置我的正确日期?您可以在插入数据时添加并执行此操作。新模式({..},{skipVersioning:{dontVersionMe:true}});东西。不要版本。推('hey');thing.save();//版本不递增,或者如果在使用检索数据时不想获取版本,则可以使用此Models.facility.find(条件,{uuu v:0},选项,回调);在投影中通过_v:0。目前未在ubuntu 16.04上安装。是的,这是正确的,只是您还需要关闭方括号。您可以安装即时npm模块。