今日はMERN
アプリケーションで作業を開始しましたが、restful api
を書きました。最初に私はデータベースを保存するためにmlab
を使用しています。私はユーザーを作成した後、このデータベースに正常に接続しました。私は手動でcollection
を作成し、これにいくつかのデータを挿入することができますcollection
。私のserver.js
ファイルから、ここにデータを格納することができます。Express JS/MongoDBポストが動作しない
MongoClient.connect(db_url, (err, database) => {
if (err) return console.log(err);
var collection = database.collection('memories'); // Collection called memories
app.listen(3000,() => {
console.log("Listening on 3000");
});
});
すごくいいですが、私は次のレベルにしたいと思います。コレクションMemory
にCRUD
apiを書きたいと思います。 django
から来て、まずmodel
を作りたいと思います。したがって、私のmodels/memory.js
に:
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var MemorySchema = new Schema({
name: String,
description: String
});
module.exports = mongoose.model('Memory', MemorySchema);
それから私は先に行って、私のroutes/api/api.js
に取り組んで開始しました:
let router = require('express').Router();
let Memory = require('../../../models/memories');
router.use(function (req, res, next) {
console.log("Something is happening");
next(); // Request stops at middleware without next()
});
router.route('/memory')
.post(function (req, res) {
let memory = new Memory();
memory.name = req.body.name;
memory.description = req.body.description;
memory.save(function (err) {
if (err) {
res.send(err);
}
res.json({message: 'Memory Created'});
});
})
.get(function (req, res) {
res.json({message: 'First memory'});
});
module.exports = router;
そして、私のserver.js
に私はこのモジュールを呼び出す:
const apiRoutes = require('./routes/api/api');
app.use('/api/', apiRoutes);
しかし、後に投稿のAPIをpostman
でテストすると、POST
リクエストは、ただちにCould not get any response
。ただし、GET
リクエストが機能します。私は何が欠けていますか?
EDIT:だからpost
機能はトラブルのモデルインスタンスを保存をしている...