【问题标题】:how to import and export function in express js with es如何用es在express js中导入导出函数
【发布时间】:2021-07-08 00:18:01
【问题描述】:

我正在尝试从一个模块中导出一些函数并像这样导入另一个函数:

import bcrypt from 'bcrypt'

const saltRounds = 10

function hashPassword(password) {
    let passwordHash = bcrypt.hash(password, saltRounds)
    return passwordHash
}

function verifyPassword(password, passwordHash) {
    return bcrypt.compareSync(password, passwordHash)

}

function randomTokenString() {
    return crypto.randomBytes(40).toString('hex')
}

function generateJwtToken(user) {
    return jwt.sign({ sub: user.id, id: user.id }, config.secret, { expiresIn: '15m' })
}

export default  { hashPassword, verifyPassword, randomTokenString, generateJwtToken }

导入

import { hashPassword, verifyPassword, randomTokenString } from '../helpers/bcrypt.helper.js'

我收到了这个错误:

SyntaxError: 请求的模块 '../helpers/bcrypt.helper.js' 确实 不提供名为“hashPassword”的导出

【问题讨论】:

    标签: node.js express ecmascript-6 import export


    【解决方案1】:

    不能导出多个默认值,如果要导出多个函数,只需在函数定义前添加export关键字

    export function hashPassword(password) {
        let passwordHash = bcrypt.hash(password, saltRounds)
        return passwordHash
    }
    
    export function verifyPassword(password, passwordHash) {
        return bcrypt.compareSync(password, passwordHash)
    
    }
    

    查看更多 What is "export default" in JavaScript?

    【讨论】:

      【解决方案2】:

      您也可以像这样导出:

      const bcrypt = require('bcrypt');
      
      const saltRounds = 10
      module.exports = {
          hashPassword: (password) => {
              let passwordHash = bcrypt.hash(password, saltRounds)
              return passwordHash
          },
      
          verifyPassword: (password, passwordHash) => {
              return bcrypt.compareSync(password, passwordHash)
          },
      
          randomTokenString: () => {
              return crypto.randomBytes(40).toString('hex')
          },
      
          generateJwtToken: (user) => {
              return jwt.sign({ sub: user.id, id: user.id }, config.secret, { expiresIn: '15m' })
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2019-08-28
        • 2023-02-25
        • 1970-01-01
        • 2017-11-16
        • 2019-05-23
        • 2021-09-18
        • 2017-11-13
        • 1970-01-01
        • 2020-07-03
        相关资源
        最近更新 更多