【问题标题】:Node.js Error - 'Cannot use import outside of a module'Node.js 错误 - '不能在模块外使用导入'
【发布时间】:2021-09-16 00:07:07
【问题描述】:

我正在做一个 React 项目,而且我有...

Firebase.js

import firebase from 'firebase/app'
import 'firebase/database'
import 'firebase/auth'

const firebaseConfig = {
    apiKey: process.env.FIREBASE_API_KEY,
    authDomain: process.env.FIREBASE_AUTH_DOMAIN,
    projectId: process.env.FIREBASE_PROJECT_ID,
    databaseURL: process.env.FIREBASE_DATABASE_URL,
    storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
    messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,
    appId: process.env.APP_ID,
    measurementId: process.env.MEASUREMENT_ID
}

firebase.initializeApp(firebaseConfig)

export const googleAuthProvider = new firebase.auth.GoogleAuthProvider()
export const database = firebase.database()

服务器.js

const express = require('express')
const path = require('path')
const { database } = require('../firebase/firebase')

const app = express()
const port = process.env.PORT || 3000
const publicDir = path.join(__dirname, '../public')

app.use(express.static(publicDir))
app.use(express.urlencoded({ extended: true }))

app.post('/someRoute', (req, res) => {
    // Wanna send data to database using 'database'
})

app.listen(port, () => {
    console.log('Server is up on PORT...', port)
})

现在,我只想将数据保存到 '/someRoute' 上的数据库,但它给了我一个错误:'cannot use import outside module'

【问题讨论】:

  • 我认为该错误是由于 firebase 文件夹位于项目的根目录之外。确保您没有导入 package.json 文件夹之外的任何内容
  • 不,firebase 文件在项目文件夹中。

标签: javascript node.js firebase ecmascript-6 import


【解决方案1】:

import {} from XXX 最初不受 NodeJS 支持。所以你应该使用

  • const XXX = require()-语法或
  • type: module 在您的 package.json 中。

导出也是如此:在 Node 中,您可以使用 module.exports = YOUR_FUNCTION_OR_CLASS

【讨论】:

    【解决方案2】:

    尝试添加 “类型”:“模块” 到你的 package.json。 您还可以将文件扩展名从 .js 更改为 .mjs

    【讨论】:

      猜你喜欢
      • 2021-02-06
      • 1970-01-01
      • 2021-12-20
      • 2021-10-31
      • 2021-10-06
      • 2021-12-07
      • 1970-01-01
      • 2020-08-18
      • 2021-09-19
      相关资源
      最近更新 更多