【问题标题】:TypeError: Cannot read property 'collection' [duplicate]TypeError:无法读取属性“集合”[重复]
【发布时间】:2021-09-18 14:40:38
【问题描述】:

TypeError:无法读取未定义的属性“集合” 在 app.post (/home/niko/Desktop/opa/app.js:17:38) 在 Layer.handle [as handle_request] (/home/niko/Desktop/opa/node_modules/express/lib/router/layer.js:95:5) 在下一个(/home/niko/Desktop/opa/node_modules/express/lib/router/route.js:137:13) 在 Route.dispatch (/home/niko/Desktop/opa/node_modules/express/lib/router/route.js:112:3) 在 Layer.handle [as handle_request] (/home/niko/Desktop/opa/node_modules/express/lib/router/layer.js:95:5) 在/home/niko/Desktop/opa/node_modules/express/lib/router/index.js:281:22 在 Function.process_params (/home/niko/Desktop/opa/node_modules/express/lib/router/index.js:335:12) 在下一个(/home/niko/Desktop/opa/node_modules/express/lib/router/index.js:275:10) 在 expressInit (/home/niko/Desktop/opa/node_modules/express/lib/middleware/init.js:40:5) 在 Layer.handle [as handle_request] (/home/niko/Desktop/opa/node_modules/express/lib/router/layer.js:95:5)

【问题讨论】:

标签: node.js mongodb express


【解决方案1】:

你已经从 mongodb 连接创建了客户端。所以,你必须像这样使用客户端而不是数据库:

app.post('/', async (req, res, next) => {
    const dataJson = req.body;

    try{
        const createdUser = await client.collection("users").insertOne(dataJson);
        res.json(createdUser);
        console.log(createdUser);
    }catch(err){
        console.log(err);
        res.json(err);
    }
});

欲了解更多信息,请访问: https://docs.mongodb.com/drivers/node/fundamentals/connection/

【讨论】:

    【解决方案2】:

    断章取意,但您不应该将您的 Mongo Connection Uri(mongodb+srv://Niko:@cluster0.k8ckw.mongodb.net/myFirstDatabase?retryWrites=true&w=majority) 公开。我试过了,它有效。使用 dotenv 保护您的秘密

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-16
      • 2021-03-18
      • 2014-09-07
      • 2017-12-15
      • 2014-05-04
      • 1970-01-01
      相关资源
      最近更新 更多