无法将数据存储到 mongoDB

not able to store the data to mongoDB

本文关键字:mongoDB 存储 数据      更新时间:2023-09-26

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

这是我的应用程序.js:

app.use(serveStatic(__dirname+"/index.html")).listen(8080);
var mongoUri = 'mongodb://localhost/test'; 

请注意,我正在更改数据库名称并尝试将数据存储在不同的//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);
  });
}

任何帮助将不胜感激。

只需替换应用程序中的代码.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方法。现在它正在工作。