我知道这里有其他问题询问同样的错误,但我找不到具体的情况。
我尝试连接mongo数据库:
var dbConn = MongoClient.connect('mongodb://localhost', function (err, client) {
if (err) throw err;
var db = client.db('mytestingdb');
});
我在这部分代码中收到错误:
app.post('/thanks', function(req, res) {
if (atendees.checkin === req.body.dbstring) {
dbConn.then(function(db) { //error here
delete req.body._id;
db.collection('feedbacks').insertOne(req.body);
})
res.redirect('/thanks.html')
}
(...)
我们的想法是将表单发送到数据库
我试着在这里遵循这个教程:
https://programmingmentor.com/post/save-form-nodejs-mongodb/
但他尝试连接服务器的方式:
var dbConn = mongodb.MongoClient.connect('mongodb://localhost:27017');
还给我一个错误(db.collection不是函数)。从我在StackOverflow中看到的,这是因为我的Mongodb版本。但是我怎样才能将其翻译成新版本?
答案 0 :(得分:1)
在mongodb 3.0中,你可以这样做:
const MongoClient = require('mongodb').MongoClient;
MongoClient.connect(url).then(client => {
const db = client.db(dbName);
// write code that uses the db here
db.collection(...).insertOne(...).then(...);
}).catch(err => {
// error connecting here
});
此示例取自3.0 doc页面:http://mongodb.github.io/node-mongodb-native/3.0/reference/ecmascriptnext/connecting/
这里有很多其他的ES7示例:http://mongodb.github.io/node-mongodb-native/3.0/reference/ecmascriptnext/crud/应该可以在当前版本的node.js中使用。