【问题标题】:Why didn't I need to connect to database为什么我不需要连接到数据库
【发布时间】:2020-10-12 11:27:06
【问题描述】:

我是网络开发的新手。我刚刚制作了一个用户模型,然后将其放入主 app.js 文件中。但是我看到,在制作用户模型时,我不需要为它连接到数据库,但我已经将数据库连接到了 app.js 文件。然后我看到了 require() 的工作原理,我发现它首先运行我们需要的模块/文件,然后返回该文件返回的对象。所以我认为它必须抛出一个错误,因为它在制作用户模型时没有找到与数据库的连接。

var mongoose=require('mongoose');
var passportlocalmongoose=require('passport-local-mongoose');

var userschema=new mongoose.Schema({
    username:String,
    password:String
});

userschema.plugin(passportlocalmongoose);
module.exports=mongoose.model('User',userschema);

【问题讨论】:

    标签: node.js mongoose require


    【解决方案1】:

    您没有连接,因为您没有提供所需的参数, 在这里,您可以使用一些步骤。 首先安装express, mongoose and dotenv dependencies,你需要一个.env文件中的数据库URL

    import express from 'express';
    import dotenv from 'dotenv';
    import mongoose from 'mongoose';
    const app = express();
    
    dotenv.config();
    mongoose.connect(process.env.DATABASE_URL, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useCreateIndex: true,
      useFindAndModify: false,
    })
      .then(() => process.stdout.write('DB Connection succesfully\n'));
    const port =3000
    
    app.listen(port, () => process.stdout.write(`Listening on port ${port} ... \n`));
    export default app;
    
    
    

    【讨论】:

    • 实际上我的代码正在运行,但我期待一个错误。原因是我期待错误,因为当我在我的主 app.js 文件中需要此文件时, require() 会运行此文件并返回该对象。并且根据该文件必须单独运行并且因为它没有连接到数据库所以它必须显示错误
    猜你喜欢
    • 2019-11-08
    • 2023-04-02
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多