【问题标题】:Exporting and importing in Node express在 Node express 中导出和导入
【发布时间】:2019-05-23 06:27:01
【问题描述】:

我正在 Node 中创建我的第一个项目,有人告诉我,创建一个包含所有常用和常用功能的 .js 文件是一个好习惯

例如,假设我想向我的 mongoose 查询某些内容,以获取数据或更新数据,我应该创建一个 js 文件,所有操作都将从该文件中进行。

假设我有一个看起来像这样的 Mongoose Schema

const mongoose = require('mongoose')

const userSchema = new mongoose.Schema({
    fullName: String,
    email: String,
    passowrd: String, 
    image: String
}) 


module.exports = mongoose.model('User', userSchema);

为了执行诸如检查用户是否存在于数据库中的功能,我在我的助手function folder 中创建了一个名为my_db_query.js 的 .js 文件,我在其中导入了我的猫鼬模式并创建了许多与我的交互的常用功能架构(或我的猫​​鼬中的其他架构)

    Const user = requeire(./../model/user.js) 
    //other schema

       function findByEmail (email) {
       return User.findOne({email: email}).then((currentUser) => {
           return currentUser
    } 

    function updateUser (updatedData) {
     //to update user
    }

    function deleteUser (user) {
   //to delete a user
}

现在,假设我有一个文件夹路由,我需要在其中使用它们。

route.delete("/:delete", isAdmin, (req, res) => {
})

route.get("/:id", (req, res) => {
})

route.put(/:id, isAdmin, (req, res) => {
})

问题:我怎样才能一次导出所有函数以及如何在我的路由文件中导入和使用它们

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

    我怎样才能一次导出所有函数?

     module.exports = { findByEmail, updateUser, deleteUser };
    

    只需导出一个包含函数的对象。

    以及如何在我的路由文件中导入和使用它们?

    您可以解构导出的对象:

     const { findByEmail, updateUser, deleteUser } = require("./my_db_query");
    
     findByEmail("test@example.com").then(/*...*/).catch(/*...*/);
    

    【讨论】:

      【解决方案2】:

      在您的.js 文件中,您可以导出您想在代码库的其他部分使用的任何函数。以下是.js 文件底部的示例。它将导出您定义的 3 个函数。

      module.exports = {
          findByEmail, 
          updateUser, 
          deleteUser
      }
      

      然后您可以在您的路线文件中导入文件/函数。在您的路线文件的顶部,您需要包含以下内容。在下面的示例中,commonMethods.js.js 文件的文件名,所有文件都位于同一目录中。

      const commonMethods = require('./commonMethods.js')
      

      然后您可以使用任何常用方法,例如:commonMethods.updateUser(updatedData)

      【讨论】:

        【解决方案3】:

        一次导出所有函数:

        我更喜欢将所有东西都封装在一个对象中。

        const index = {};
        index.findByEmail = function() { ... }
        index. updateUser = function() { ... }
        index. deleteUser = function() { ... }
        
        module.export = index;
        

        导入 1

        const lib = require('./lib.js');
        

        导入 2 const {findByEmail, updateUser , deleteUser } = required('./lib.js');

        【讨论】:

          猜你喜欢
          • 2019-08-28
          • 2018-07-16
          • 2017-09-28
          • 1970-01-01
          • 2020-10-19
          • 2020-05-20
          • 1970-01-01
          • 1970-01-01
          • 2020-07-03
          相关资源
          最近更新 更多