Javascript SyntaxError:请求的模块';sqlite';不提供名为';默认值';

Javascript SyntaxError:请求的模块';sqlite';不提供名为';默认值';,javascript,node.js,sqlite,npm,Javascript,Node.js,Sqlite,Npm,我在尝试导入sqlite时遇到问题,我添加了以下行: import sqlite from 'sqlite'; 我得到以下错误 file:///D:/WebPro/WebProg/cwCode/dbInteract.js:2 import sqlite from 'sqlite'; ^^^^^^ SyntaxError: The requested module 'sqlite' does not provide an export named 'default' at

我在尝试导入sqlite时遇到问题,我添加了以下行:

import sqlite from 'sqlite';
我得到以下错误

file:///D:/WebPro/WebProg/cwCode/dbInteract.js:2
import sqlite from 'sqlite';
       ^^^^^^
SyntaxError: The requested module 'sqlite' does not provide an export named 'default'
    at ModuleJob._instantiate (node:internal/modules/esm/module_job:105:21)
    at async ModuleJob.run (node:internal/modules/esm/module_job:151:5)
    at async Loader.import (node:internal/modules/esm/loader:166:24)
    at async Object.loadESM (node:internal/process/esm_loader:68:5)
npm ERR! code 1
npm ERR! path D:\WebPro\WebProg\cwCode
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node svr.js

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Rory\AppData\Local\npm-cache\_logs\2021-05-04T13_37_27_066Z-debug.log
PS D:\WebPro\WebProg\cwCode>
在将package.json中的类型更改为“module”之前,我没有遇到这个问题

如果我那么改变是为了

import sqlite from 'sqlite3';
我得到了这个错误

file:///D:/WebPro/WebProg/cwCode/svr.js:4
const express = require('express');
                ^

ReferenceError: require is not defined
    at file:///D:/WebPro/WebProg/cwCode/svr.js:4:17
    at ModuleJob.run (node:internal/modules/esm/module_job:154:23)
    at async Loader.import (node:internal/modules/esm/loader:166:24)
    at async Object.loadESM (node:internal/process/esm_loader:68:5)
npm ERR! code 1
npm ERR! path D:\WebPro\WebProg\cwCode
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node svr.js

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Rory\AppData\Local\npm-cache\_logs\2021-05-04T13_44_05_322Z-debug.log
PS D:\WebPro\WebProg\cwCode> 

对于ESM模块,有两种导出功能性的方法:作为默认导出或作为命名导出。导入这些功能性的方式取决于它们最初的实际导出方式

import defaultExport from 'module1'                  // Import default export 
import { namedExport1, namedExport2 } from 'module2' // Import named exports
注意:一个模块实际上可能同时具有默认导出和命名导出,或者只是其中的一个

即使它们是同一数据库的库,
sqlite
sqlite3
包显然只是以不同的方式导出它们的API,更具体地说,
sqlite
似乎没有默认的导出

此外,当您将
package.json
类型
键设置为
模块
时,指示节点使用ESM模块系统加载程序。该系统不定义
require()
函数,该函数由另一个名为CommonJS的node.js主流模块系统定义。您应该坚持这里的
import
语法