mongooseスキーマベースのモデルでNodeJsとMongoDBを使用してサーバー関連のAPIを実装しています。私の疑問は、その上記のコードでmongooseからjsonObjectを取得
あるので、私はそれがこのようjsonArrayを返すサーバーを実行すると私の以前の質問はここで、
[
{
"_id": "58ba4c9c03e10b16d140775f",
"name": "Noorul ahamed",
"__v": 0,
"status": [
"pending"
],
"Created_date": "2017-03-04T05:11:56.590Z"
},
....
...
...
]
'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);
}
// console.log('Web Server started, waiting for connections...'+task);
res.json(task);
});
};
た、タスクは、この種を与えますレスポンスのどのように私はそのタスク配列のすべてのオブジェクトを取得するのですか?その配列からすべてのオブジェクトを取得するためにforループを使用する必要がありますか?私はNodeJsとMongoDBが初めてです。私はうまくサーバーを構造化しました。今私はこれにこだわっています。ヘルプは高く評価されます。
UPDATE
// var myOwnObject = new mongoose.Schema({ name: 'string', id: 'string',status:'string',createdDate:'String' });
// var myOwnObject = {};
var dataArray;
for (var i = 0; i < task.length; i++) {
var userObject = task[i];
myOwnObject.name=userObject.name;
myOwnObject.id=userObject._id;
myOwnObject.status=userObject.status[0];
myOwnObject.createdDate=userObject.Created_date;
dataArray[i]=myOwnObject;
}
res.json(JSON.Stringify(dataArray));
エラー
events.js:161 スローえー。 //未処理の 'エラー' イベント ^
TypeError: Cannot set property 'name' of undefined at /home/noorulhasan/todoListApi/api/controllers/todoListController.js:17:29 at model.Query. (/home/noorulhasan/node_modules/mongoose/lib/model.js:3433:16) at /home/noorulhasan/node_modules/kareem/index.js:273:21 at /home/noorulhasan/node_modules/kareem/index.js:127:16 at _combinedTickCallback (internal/process/next_tick.js:67:7) at process._tickCallback (internal/process/next_tick.js:98:9) [nodemon] app crashed - waiting for file changes before starting...
更新エラー iはmyObjectという= {}
events.jsと試み:161 スローER。 //未処理の 'エラー' イベント ^
TypeError: Cannot set property '0' of undefined at /home/noorulhasan/todoListApi/api/controllers/todoListController.js:21:25 at model.Query. (/home/noorulhasan/node_modules/mongoose/lib/model.js:3433:16) at /home/noorulhasan/node_modules/kareem/index.js:273:21 at /home/noorulhasan/node_modules/kareem/index.js:127:16 at _combinedTickCallback (internal/process/next_tick.js:67:7) at process._tickCallback (internal/process/next_tick.js:98:9)
UPDATE
私は、出力のこの種を取得しています。どのように '\'記号を取り除くか。
"[{\"name\":\"Ahamed\",\"id\":\"58bac0fc2cf0894f071e41c0\",\"createdDate\":\"2017-03-04T13:28:28.759Z\"}]
私は、次の方法を試してみました。
var jsonData=JSON.stringify(dataArray);
var updateJson = jsonData.replace('"\"', "");
res.json(JSON.stringify(updateJson));
が、それは以下のような余分な記号を追加し、
"\"[{\\\"name\\\":\\\"Ahamed\\\",\\\"id\\\":\\\"58bac0fc2cf0894f071e41c0\\\",\\\"status\\\":\\\"pending\\\",\\\"createdDate\\\":\\\"2017-03-04T13:28:28.759Z\\\"}]\""
あなたの 'task'は単なる通常の配列です。任意の通常の配列と同様に、その内部の要素にアクセスできます。あなたは 'task [n]'で特定の要素を選択するか、任意の種類のループまたはイテレーター関数を使用することができます。 –
@JyotmanSinghご協力いただきありがとうございます。私は上記の方法で試しました。私は私の質問を更新しました。 – Noorul