Javascript 通过NodeJS/Webix在MongoDB中添加数据
这是我关于堆栈溢出的第一篇文章,我希望得到帮助,就像我可以在需要时帮助别人一样。我正在尝试使用一个用户友好的界面来创建我自己的数据库,以便在我的数据表中添加/编辑/删除值 我可以从我的MongoDB编辑/删除数据,但是我不能从我的html页面的数据表中添加任何内容 如果您看到有什么问题(现在我迷路了!):我想我的问题是在添加部分出现的,因为当我尝试从UI在数据库中添加某些内容时,我的终端中会出现blabla错误消息。Javascript 通过NodeJS/Webix在MongoDB中添加数据,javascript,node.js,mongodb,express,webix,Javascript,Node.js,Mongodb,Express,Webix,这是我关于堆栈溢出的第一篇文章,我希望得到帮助,就像我可以在需要时帮助别人一样。我正在尝试使用一个用户友好的界面来创建我自己的数据库,以便在我的数据表中添加/编辑/删除值 我可以从我的MongoDB编辑/删除数据,但是我不能从我的html页面的数据表中添加任何内容 如果您看到有什么问题(现在我迷路了!):我想我的问题是在添加部分出现的,因为当我尝试从UI在数据库中添加某些内容时,我的终端中会出现blabla错误消息。 var express = require('express'); var p
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);
当我从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
当然,我始终无法向数据库添加任何内容。
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);
最后 我刚刚将Mongoskin从1.3.20更新到最新版本2.1.0,一切正常),非常高兴
非常感谢大家的帮助可能是您的错误是由于POST call在req.body中找不到值。 您需要主体解析器,但没有使用它
app.use(express.urlencoded());
代替此用途:
app.use(bodyParser.urlencoded());
请详细说明错误。我猜错误来自代码中的“添加”部分,因为当我尝试在UI中添加值时,我可以在我的终端中看到错误消息“BLABLABLA”(对不起,我是法国人)。你能记录错误消息
console.log(err)代码>并用消息更新您的问题?您是否尝试过使用insertOne/insertMany而不仅仅是insert?顺便说一句,我不知道这是否真的是你的计划,以保持本土,但你可以猫鼬为例,这将有助于互动!Hi chridam这是console.log(err):“MongoError:驱动程序与此服务器版本不兼容”Hi rule当我尝试使用insertOne/insertMany时,我有此错误:“TypeError:db.test2test.insertOne不是函数”感谢guysThanks Sourbh Gupta的帮助,但在更改后,结果相同。。