0
エクスプレスとモンゴースを使用してREST APIを作成しようとしています。以下はユーザーモデルのコードです(user.server.model.js)。Mongooseでモデルを使用して文書を作成できません
const mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
name: {
first: { type: String, required: true },
last: { type: String, required: true }
},
loginId: { type: String, required: true, unique: true },
password: { type: String, required: true },
location: String,
meta: { age: Number, website: String },
isActive: Boolean,
createdOn: { type: Date, default: Date.now },
updatedOn: Date
});
var User = mongoose.model('User', userSchema);
exports.User = User;
私は急行ルートのこのUserモデルを使用しようとしているとして、以下の(routes.js):
const express = require('express'),
User = require('../models/user.server.model'),
router = express.Router();
router.route('/users')
.post((req, res) => {
let user = new User({
name: req.body.name,
loginId: req.body.loginId,
password: req.body.password,
location: req.body.location,
meta: req.body.meta,
createdOn: req.body.createdOn,
updatedOn: req.body.updatedOn
});
user.save((err) => {
if (err) {
res.send(err);
}
else{
res.json({ message: 'User created' });
}
});
});
module.exports = router;
しかし、私はクロームIでポストマン拡張子を使用して、このAPIをテストしようとすると、 「
TypeError: User is not a constructor
ノードバージョンエラーの下になってメートル:6.0
誰でもここで間違っていることを助言してもらえますか?
をあなたは 'ユーザとして直接' require'値を使用しています'ので、' exports.User'をuser.server.model.jsの 'module.exports'に変更する必要があります。試してみてください。 – JohnnyHK
@JohnnyHKさん、ありがとうございました:)答えとしてマークすることができるように、回答セクションにあなたのコメントを投稿してください。 – Dinu
@JohnnyHK exports.Userがここで動作しない理由を知っているかもしれませんか? – Dinu