2017-05-06 21 views
0

私は寄付書式を作成しようとしています。 server.jsスキーマはコンストラクタではありません

const express = require('express'); 
const bodyParser = require('body-parser'); 

var {mongoose} = require('./db/db.js'); 
// var {Form} = require('./models/form.js'); 
var {Form} = require('./models/schema.js'); 
var app = express(); 
app.use(bodyParser.json()); 


app.get('/', function(req, res) { 
    res.send('ok'); 
}); 
//private 
app.get('/form', (req, res) => { 
    mongoose.model('Form').find((err, form) => { 
     res.send(form); 
    }); 
}); 
//makes new member 
app.post('/form', (req, res) => { 
    var newMember = new Form({ 
    firstName: req.body.firstName, 
    lastName: req.body.lastName, 
    email: req.body.email, 
    phoneNumber: req.body.phoneNumber, 
    donation: req.body.donation, 
    shirt: req.body.shirt 
    }); 
    newMember.save().then((doc) => { 
    res.send(doc); 
    }, (e) => { 
    res.status(400).send(e); 
    }); 
}); 

app.listen(3000,() => { 
    console.log('Listening on port 3000.'); 
}); 

を次のように私のコードがあると私は、GETリクエストを実行すると、フォームモデル

const mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var formSchema = new Schema({ 
    firstName: { 
    type: String, 
    required: true, 
    minlength: 1, 
    trim: true 
    }, 
    lastName: { 
    type: String, 
    required: true, 
    minlength: 1, 
    trim: true 
    }, 
    email: { 
    type: String, 
    required: true, 
    minlength: 1, 
    trim: true 
    }, 
    phoneNumber: { 
    type: Number, 
    trim: true, 
    minlength: 7, 
    required: false 
    }, 
    donation: { 
    type: Number, 
    required: true 
    }, 
    shirt: { 
    type: Boolean 
    } 
}); 
var form = mongoose.model('Form',formSchema); 
module.exports = {form}; 

は、私は、データベース内のすべてのデータを取得するが、私は私が手にPOSTリクエストを送信するときエラー "TypeError:Formは、のapp.post(.../server/server.js:22:19)のコンストラクタではありません"。このエラーを修正するにはどうすればよいですか?私はエラーが私が新しいフォームを呼び出す方法から来ていると思うが、私がコードに行うすべての調整はそれを修正するようには見えない。

答えて

0

オブジェクト{form:form}をエクスポートしていますが、そのケースに注意してください。しかし、あなたはFormとしてインポートし、それを破棄しています。小文字に変更します。descructurtingながら、あなたはFormとして、それを維持したい場合は

var {form} = require('./models/schema.js'); 
... 
var newMember = new form({...}); 

はまたあなたも、新しいvaraible名にマップすることができます

var {form : Form} = require('./models/schema.js'); 
関連する問題