当我从Mongoose连接MongoDB到本地主机时,我不熟悉express和node,我得到一个错误,比如TypeError: connectDb is not a function?
src/模型/索引

const mongoose = require("mongoose");

const User = require("./user");
const Message = require("./message");

const connectDb = () =>
  mongoose.connect(process.env.DATABASE_URL, { useNewUrlParser: true });

const models = { User, Message };

exports = { connectDb };
module.exports = models;

src/索引
// .... Some code here

const { connectDb } = require("./models");

// .... Some code here

connectDb()
  .then(async () => {
    app.listen(process.env.PORT);
  })
  .catch(error => console.error(error));

最佳答案

exports = { connectDb };

这句话不正确。它不导出connectDb函数。
如果要使用exports关键字导出connectDb函数,则必须按
exports.connectDb = () => mongoose.connect(process.env.DATABASE_URL, { useNewUrlParser: true });

或者只是
exports.connectDb = connectDb;

如果要导出多个对象,可以向exports对象添加多个属性
要导出模型,可以执行以下操作
exports.models = models;

现在这个文件将导出一个有两个属性的对象,connectDbmodels
另一种出口多种产品的方法是
module.exports = {
    connectDb,
    models
};

这还将导出包含两个属性的对象,connectDbmodels

关于node.js - TypeError:connectDb不是函数吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57833447/

10-10 00:09