无法将数据存储到mongoDB

时间:2015-03-11 04:50:18

标签: javascript node.js mongodb express

我正在尝试使用noddejs将数据从html表单存储到mongodb 3小时。 点击提交时,它会显示另一个页面,该页面返回以json格式提交但尚未存储在数据库中的数据。

这是我的app.js:

app.use(serveStatic(__dirname+"/index.html")).listen(8080);

var mongoUri = 'mongodb://localhost/test'; 

//注意我正在更改dbname并尝试将数据存储在不同的// db中也会显示相同的错误

mongoose.connect(mongoUri);

var db = mongoose.connection;
db.on('error', function () {
  throw new Error('unable to connect to database at ' + mongoUri);
});

console.log("connection successfull");
app.use(express.bodyParser());


app.use(express.static(__dirname + "/" ));

app.use(bodyParser.urlencoded({extended:true}));

app.post('/InquiryDetails', function(req,res){

    res.json(req.body);
    console.log(req.body);

});
require('./models/InquiryDetails');

app.listen(4000);
console.log('Listening on port 4000...');

这是我的模特:

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

var myskyllSchema = new Schema({
  name: String, 
  email: String,
  state: String,
  country: String,
  school: String,
  profession: String,
  phone: Number
});

mongoose.model('InquiryDetails', myskyllSchema);

这是我的控制者:

var mongoose = require('mongoose'),
InquiryDetails = mongoose.model('InquiryDetails');


exports.add = function(req, res) {
  InquiryDetails.create(req.body, function (error, details) {
    if (error) return console.log(error); 
    return res.send(details);
  });
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

只需替换app.js中的代码:

app.post('/InquiryDetails', function(req, res) { InquiryDetails.create(req.body, function (error, details) { if (error) return console.log(error); return res.send(details); res.send(req.body); }); });

而不是:

exports.add = function(req, res) { InquiryDetails.create(req.body, function (error, details) { if (error) return console.log(error); return res.send(details); }); }

原因是控制器无法加载,方法添加未使用post方法注册。现在它正在发挥作用。