我正在尝试将数据发布到我在 mLab 上创建的数据库中,我收到了这个错误,但我不知道出了什么问题。我也读过之前关于这个主题的问题,但我无法解决我的错误我是新来的。所以在这里我发布了我试图实现的代码,它取自本教程 https://medium.freecodecamp.com/building-a-simple-node-js-api-in-under-30-minutes- a07ea9e390d2 。
服务器.js
const express = require('express');
const MongoClient = require('mongodb').MongoClient;
const bodyParser = require('body-parser');
const db = require('./config/db');
const app = express();
const port = 8000;
app.use(bodyParser.urlencoded({extened:true}));
MongoClient.connect(db.url,(err,database) =>{
if (err) return console.log(err)
require('./app/routes')(app,{});
app.listen(port,() => {
console.log("We are live on"+port);
});
})
数据库.js
module.exports = {
url : "mongodb://JayTanna:Jay12345@ds147510.mlab.com:47510/testing"
};
index.js
const noteroutes = require('./note_routes');
module.exports = function(app,db)
{
noteroutes(app,db);
};
note_routes.js
module.exports = function(app, db) {
app.post('/notes', (req, res) => {
const note = { text: req.body.body, title: req.body.title };
db.collection('notes').insert(note, (err, result) => {
if (err) {
res.send({ 'error': 'An error has occurred' });
} else {
res.send(result.ops[0]);
}
});
});
};
原文由 Jay 发布,翻译遵循 CC BY-SA 4.0 许可协议
在您的 server.js 中,您正在传递空对象,您需要在其中传递数据库作为第二个参数,因为它是您的 routes/index.js 导出函数所期望的。
PFB 更新 server.js :