NodeJS与mongoDB JSONFormat问题

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

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

第2步:我在我的项目文件夹中创build了包含package.json文件的所有服务器设置。

第3步:我创build了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); 

然后我创build了用于存储logging的模型文件。

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); 

todoListRoutes.js

 '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); }; 

todoListController.js

 '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应用程序从数据库中获取数据。

所以,我喜欢下面,

GET方法:localhost:3000 / tasks

它成功运行,并产生了结果。

像下面一样,

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

我的问题在这里,

1)我没有在这里创build__vid字段。 那为什么要来呢? 2)然后我需要在Created_date字段中适当的date格式。 像“dd-MM-yyyy hh:mm”。 怎么做?

帮助将不胜感激。谢谢。

UPDATE

当我尝试安装时,发生以下错误

notsup SKIPPING可选依赖:fsevents@1.1.1不受支持的平台:wanted {“os”:“darwin”,“arch”:“any”}(current:{“os”:“linux”,“arch”:“x64 “})

 1. "_id": "58ba4c9c03e10b16d140775f" 

这是默认的由mongodb为你插入的每个文档创build一个唯一的id mongo将创build一个默认设置为索引键的_id。

为了更多的参考,你可以阅读_id的优势

 2."__v": 0 

versionKey是在首次由Mongoose创build时在每个文档上设置的属性。 该键值包含文档的内部修订版本。 versionKey选项是表示用于版本控制的path的string。

打开这个更多的细节

 3."Created_date": "2017-03-04T05:11:56.590Z" 

是mongodb保存date的默认格式。Mongodb使用ISO格式存储date。 如果您想以这种方式保存date,您可以将date保存为string格式,但也可以保存为ISO格式,但是当您读取文档时,可以使用诸如Moment之类的模块来显示您想要的任何格式的date。