如何在nodejs中安装nanoid?

Lin*_*ser 4 javascript node.js npm nanoid

我目前正在尝试在我的(Firebase)nodejs 项目中导入和使用 nanoid。我安装了它

npm i nanoid
Run Code Online (Sandbox Code Playgroud)

我尝试导入它

import { nanoid } from 'nanoid'
Run Code Online (Sandbox Code Playgroud)

import { nanoid } from '../node_modules/nanoid/nanoid.js'
Run Code Online (Sandbox Code Playgroud)

我尝试的一切都失败了。我是 Nodejs 和 js 本身的初学者,但没有网站或文档帮助我解决问题。我只想要一个唯一的 ID :(

这是我的index.html(减少到最小值:

<!DOCTYPE html>
<html>
  <head>
    <title>Welcome to Firebase Hosting</title>

    !!!Here are Firebase imports!!!
 
    <script defer src="/__/firebase/init.js?useEmulator=true"></script>
    <link rel="stylesheet" href="style.css">


  </head>
  <body>

    <div class="registerContainer">

    <div class="registerContent">
    <h1 id="title">Sign up</h1>
    <iframe name="hiddenFrame" width="0" height="0" border="0" style="display: none;"></iframe>
    <form id="form" onsubmit="return false">
    


      <!-- Birth date Input (required) -->
      <div class="input_field">
          <input id="date" onfocus="(this.type = 'date')" class="text_input" type="text" name="birthdate" placeholder="Geburtsdatum" required />
      </div>

      <!-- Checkbox 1 -->
      <div class="input_field checkbox_option">
          <input type="checkbox" id="cb1" class="checkbox">
          <label for="cb1">I agree with terms and conditions</label>
      </div>


      <input class="button" id="registerUser" type="submit" value="Anmelden"/>

    </form>
  </div>
    </div>

    <script src="app.js"></script>

  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

应用程序.js:

const nanoid = require('nanoid');

document.addEventListener('DOMContentLoaded', event => {
    const app = firebase.app();
    const db = firebase.firestore();

    const users = db.collection('users');
})


async function addUser() {
    console.log('adding User');
    const db = firebase.firestore();
    const users = db.collection('users');   
    const data = {
        email: document.getElementById("email").value,
        test_active: false
    };

    
    code = nanoid(10).toString();
    await users.doc(code).set(data);  
}
Run Code Online (Sandbox Code Playgroud)

zem*_*mil 8

谁有这个错误:

错误 [ERR_REQUIRE_ESM]:...

自nanoid@4.0.0起,作者已删除 CommonJS 支持

  1. 尝试使用ESM模块导入
  2. 或者使用 nanoid@3.0.0:npm i -S nanoid@3.0.0