私はNodeJSとMongoDbを初めて使用しています。私はjsonObjectの問題に直面しています。mongoDBのNodeJS JSONFormatの問題
ステップ1:私はNodeJSとMongoDBを私のubuntu 16.04システムに正常にインストールしました。
手順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);
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 /タスク
それが正常に実行し、それが結果を生成します。
以下のような、
[
{
"_id": "58ba4c9c03e10b16d140775f",
"name": "Karthik",
"__v": 0,
"status": [
"pending"
],
"Created_date": "2017-03-04T05:11:56.590Z"
}]
私の問題は、ここで
1である)私はここ__vとIDフィールドを作成していませんでした。それでなぜ来るの? 2)次に、Created_dateフィールドに適切な日付形式が必要です。 「dd-MM-yyyy hh:mm」のようなものです。どうやってするの?
お願いします。ありがとうございます。サポートされていないプラットフォームを[email protected]ため:
エラー以下
私は瞬間をインストールしようとUPDATEは、オプションの依存関係を飛ばしnotsup
を発生します。1:(現在:{ "OS" の "Linux"、 "アーチ": "x64の"})
jsonから__vを取り除く方法。私の正しい日付を設定する方法は? – Noorul
これは、データを挿入するときに追加できます。 新しいスキーマ({..}、{skipVersioning:{dontVersionMe:true}}); thing.dontVersionMe.push( 'hey'); thing.save(); //バージョンがインクリメントされていない –
またはデータの取得を使用しているときに取得したくない場合は、このModels.facilities.find(条件、{__v:0}、オプション、コールバック)を使用できます。 投影で__v:0を渡します。 –