私はモバイルアプリケーションのサーバーとしてノードjとmongodbを理解するのに役立つ非常に基本的なサーバーを使っています。私はチュートリアルに従い、簡単なtodosを投稿するようにしました。しかし、私が次にやりたいことは、POSTリクエスト内のテキストと共に画像をポストし、GETリクエストでJSONとして取得することです。以下は、私がこれまでに行ったコードで、作成日時と一緒にtodo名をdbに正常に投稿します。ノードJS&MongoDB - iOSサーバー用の画像を投稿して取得するapi
以下のクラスは私がスキーマのために持っていたものですが、画像を追加する方法を追加しようとしましたが、これは正しいとは思わないです。私は正確な練習はファイルシステムに画像を格納することだと信じてhttps://{mydomain}/images/
し、画像データを投稿するときは、フォルダ内の画像とURLをデータベースの画像に保存しますか?
todoListModel.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'
},
img: {
data: Buffer,
contentType: String
},
Created_date: {
type: Date,
default: Date.now
}
});
module.exports = mongoose.model('Tasks', TaskSchema);
todoListController.js
'use strict';
var 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({
data: {
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({
data: {
task
}
});
});
};
exports.read_a_task = function(req, res) {
Task.findById(req.params.taskId, function(err, task) {
if (err)
res.send(err);
res.json({
data: {
task
}
});
});
};
exports.update_a_task = function(req, res) {
Task.findOneAndUpdate({_id: req.params.taskId}, req.body, {new: true}, function(err, task) {
if (err)
res.send(err);
res.json({
data: {
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';
module.exports = function(app) {
var todoList = require('../controllers/todoListController');
// todoList Routes
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);
};
server.js
var express = require('express'),
app = express(),
port = process.env.PORT || 3000,
mongoose = require('mongoose'),
Task = require('./api/models/todoListModel'), //created model loading here
bodyParser = require('body-parser');
// mongoose instance connection url connection
mongoose.Promise = global.Promise;
mongoose.connect('mongodb://localhost/Tododb');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var routes = require('./api/routes/todoListRoutes'); //importing route
routes(app); //register the route
app.listen(port);
console.log('todo list RESTful API server started on: ' + port);
誰かがこれについて少し明るい光を放つことができれば、それは大いに感謝されます。
は、私はPOSTリクエストのフォルダに一意の名前で画像を保存し、それを保存するとき、それは保存されると、その後、データベース内の画像のURLを配置する必要があり、この平均値をい?もしそうなら、これがどのように行われるかについてのサンプルがありますか? –
expressjsで画像をアップロードするには、http://blog.robertonodi.me/simple-image-upload-with-expressを参照してください。 –
このhttps://github.com/hawksaggs/image_uploadを参照してください私は素朴なソーシャルネットワーキングwesiteタイプのプロジェクトを作った –