Mongoose。saveメソッドに問題があります。データベースは決して作成されず、データは保存されず、エラーは発生しません。私は幸運と同様の提案を見て、Googleとstackoverflowを使い果たしたので、私を助けることができる誰にもそれを開いて投げる!Mongoose .save()はデータベースに保存しませんか?
私のPOSTリクエストがで作られている:
export function registerUser({ email }) {
return function(dispatch) {
axios.post(`${API_URL}/auth/register`, { email })
.then(response => {
dispatch({ type: AUTH_USER });
})
.catch((error) => {
errorHandler(dispatch, error.response, AUTH_ERROR)
});
}
}
私はいくつかのPOSTリクエストを行い、すべてのサーバの設定に戻ってAPIから成功のステータスを取得する:{'database': 'mongodb://localhost/practicedb', 'port': process.env.PORT || 3000}
、まだデータが保存されていないとデータベース(practicedb)を取得しませんターミナルに表示されません。
(user.jsの):
var UserSchema = new Schema({
email: {
type: String,
lowercase: true,
unique: true,
required: true
},
})
APIコントローラ電子メールの文字列のPOSTリクエストを受信した後、何もテキストフィールドに入力されていない場合
、それは422エラーを返信し、User.findOne
の内部に電子メールがすでにデータベースに存在する場合は422エラーをスローし、そうでない場合はuser.save
をデータベースに保存します。しかし.saveはエラーなしで動作せず、データベースも作成されません。
"use strict";
const User = require('../models/user')
exports.register = function(req, res, next) {
const email = req.body.email;
if(!email) {
return res.status(422).send({ error: 'You must enter an email address.'})
}
User.findOne({ email: email }, function(err, existingUser) {
if(err) { return next(err); }
if(existingUser) {
return res.status(422).send({ error: 'That email address is already in use.'})
}
let user = new User({
email: email,
})
user.save(function(err, user) {
if(err) { return next(err); }
res.status(201).json({
user: user,
})
})
})
}
私はAPIコントローラのためのより広範なコンソールロギングを試してみましたが、一度トリガ、それは何も実行しないように見えるし、両端にスキップしますが、それはバックアップ取り上げて行く
EDIT User.findOneとuser.saveの両方の内部にありますが、user.saveは動作していないようです。
サーバーがデータベースに正しく接続されていない可能性がありますか? MongoDBメソッドが使用されているかどうかを判断する方法はありますか?
は、同様に急行ロギングをしようとしました:
そして、ここでは、サーバの設定方法です。
const express = require('express'),
app = express(),
logger = require('morgan'),
config = require('./config/main'),
mongoose = require('mongoose'),
bodyParser = require('body-parser'),
router = require('./router');
mongoose.Promise = global.Promise;
mongoose.connect(config.database);
const server = app.listen(config.port);
console.log('Your server is running on port ' + config.port + '.');
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(logger('dev'));
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "http://localhost:8080");
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization, Access-Control-Allow-Credentials");
res.header("Access-Control-Allow-Credentials", "true");
next();
})
router(app);
EDIT 2
あなたのuser.jsのが完了しているのですか?あなたがmongooseスキーマを宣言し、モデルを返すとき? –
@LucasCosta申し訳ありませんが、完了したことを明確にすることができますか? –
@LucasCosta申し訳ありませんが、誰があなたたちを '彼ら'と呼んでいますか? –