通过NodeJS / Webix在MongoDB中添加数据

这是我在堆栈溢出的第一篇文章,我希望能得到帮助,就像我可以帮助某人,如果需要的话。 我试图做我自己的数据库用户界面友好的添加/编辑/ Del值在我的数据表中。

我可以编辑/从我的MongoDB中 删除数据,但我不能从我的HTML页面的数据添加任何东西。

如果你可以看到错误的东西(现在我迷路了): 我想我的问题已经在我的添加部分中进行了本地化,因为当我尝试从UI添加一些东西到我的数据库时,我的terminal中出现了BLABLABLA错误消息。

var express = require('express'); var path = require('path'); var bodyParser = require('body-parser'); //connect to the mongo var db = require('mongoskin').db("mongodb://localhost/TESTING", { w: 0}); db.bind('test2test'); //create the app instance var app = express(); //serve static files app.use(express.static(path.join(__dirname, 'public'))); //parse POST data app.use(express.json()); app.use(express.urlencoded()); //response for saving operations function after_update(err, res, test2test){ if (err){ res.status(500); res.send({ error:err.toString() }); } else { res.send(record || {}); } } //data loading app.get('/data', function(req, res){ db.test2test.find().toArray(function(err, data){ for (var i = 0; i < data.length; i++){ //map _id to id data[i].id = data[i]._id; delete data[i]._id; } res.send(data); }); }); //adding app.post('/data', function(req, res){ db.test2test.insert(req.body, function(err, test2test){ if (err) { console.log("BLABLABLA"); return res.send({ status:"error" }); } res.send({ newid:req.body._id }); }); }); //updating app.put('/data/:id', function(req, res){ db.test2test.updateById(req.param("id"), req.body, function(err){ if (err) return res.send({ status:"error" }); res.send({}); }); }); //deleting app.delete('/data/:id', function(req, res){ db.test2test.removeById(req.param("id"), req.body, function(err){ if (err) return res.send({ status:"error" }); res.send({}); }); }); app.listen(3000); 

更新

新问题的家伙,当我尝试添加数据,我有这个消息通过console.log(错误)

 [MongoError: driver is incompatible with this server version] name: 'MongoError' 

当我从shell中运行Mongo时,可以看到:

 MongoDB shell version v3.4.0 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.2.11 WARNING: shell and server versions do not match 

我用 :

 MongoDB 3.4 Express 3.5.3 Mongoskin ~1.3.20 

当然,我总是不能添加任何东西到我的分贝..


最后

我刚刚从1.3.20 更新到2.1.0最后一个版本的Mongoskin一切正常 ))很高兴

非常感谢大家的帮助

可能是你的错误是由于POST调用没有在req.body中find值。 你需要body-parser,但是没有使用它。

 app.use(express.urlencoded()); 

而不是这个用途:

 app.use(bodyParser.urlencoded());