LowDB采坑记录(主要为lowdb3.0的Cannot find module和lowdb1.0 node不断自启动的问题)
bug1: Error [ERR_ MODULE_ NOT_ FOUND]: Cannot find module
在使用最新版LowDB(3.0)时,发现typescript中直接引用模块名(如以下代码示例)
import * as allService from '../all.service'
问题在于LowDB3.0官网示例中,import.meta.url要求tsconfig.json中的"module"不能为"commonjs"
// db.ts
const __dirname = dirname(fileURLToPath(import.meta.url));
// tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"target": "esnext",
"sourceMap": true,
"outDir": "dist"
},
}
这意味着ts文件中的模块将无法被调用,因此出现'Error [ERR_ MODULE_ NOT_ FOUND]: Cannot find module'的错误提示。
我的解决方法是将LowDB的版本降到1.0。
网上解决方法总结如下:
answer1:
使用 ECMAScript 模块时,必须提供文件扩展名: https://nodejs.org/api/esm.html#esm_mandatory_file_extensions
因此,除了在package.json
中使用"type": "module"
之外,您还需要指定文件扩展名import { url } from './helpers.js'
。您还可以使用标志--es-module-specifier-resolution = node
将js文件解析为模块,就像之前使用require
一样
answer2:
将下面的命令行
node index.js
换为
node --experimental-specifier-resolution=node index.js
或者在package.json文件中添加命令行
"scripts": {
"start": "NODE_OPTIONS='--experimental-specifier-resolution=node' node src/index.js
}
answer3:
在使用 ES 模块时,我们必须在 import 语句中指定文件扩展名
import * from "./demo.js" // Works fine
import * from "./demo" // Will throw error as you see
ps: 上面两个选项在使用 commonJs 时都是有效的
答案选自stack overflow上的帖子,访问原帖请点击以下链接:
stack overflow
bug2: lowdb1.0+typescript+nodemon,nodemon不断重启服务器
解决方法:
根源在于存储数据的db.json文件不停在创建,解决方法是判断路径下文件是否已存在,若已存在则不再创建文件
参考文献:https://www.656463.com/wenda/Nodemonbuduanzhongqifuwuqi_504
LowDB采坑记录(主要为lowdb3.0的Cannot find module和lowdb1.0 node不断自启动的问题)的更多相关文章
- Antd前端开发采坑记录
背景 基于页面友好,界面整洁美观:基于Antd框架开发虾能平台 选型 基于Antd-admin工程架构,进行开发:基于Antd+React+Umj 采坑记录 按照Html方式天机onClick方法,每 ...
- Charles 抓包工具安装和采坑记录
Charles 抓包工具安装和采坑记录 网络抓包是解决网络问题的第一步,也是网络分析的基础.网络出现问题,第一步肯定是通过抓包工具进行路径分析,看哪一步出现异常.做网络爬虫,第一步就是通过抓包工具对目 ...
- HUE Oozie : error=2, No such file or directory采坑记录
HUE Oozie : error=2, No such file or directory采坑记录 1.错误详情 一直都是同一种方式在hue上定义workflow,不知为啥 今天定义的就是不行... ...
- uni-app采坑记录
1. uni-app采坑记录 1.1. 前言 这里记录下uni-app实践中踩的坑 1.2. 坑点 1.2.1. 触发事件@longTap和@longpress 这两个都表示长按触发事件,那么这两个有 ...
- v8环境搭建采坑记录
项目组有把js接入C++服务求的需求,故开始了v8接入的工作,用了一天多时间,v8才在centos环境上成功安装,过程中踩了很多坑,下面将采坑过程记录如下: centos下编译安装v8: 查看ce ...
- Win7 node多版本管理gnvm采坑记录
采坑描述:下载新node版本及切换node失败 解决:1.要用管理员权限启动cmd:2.确保node是空闲的 Gnvm下载地址: 32-bit | 64-bit Github 1.下载之后为 得到一个 ...
- angular采坑记录
在angular中会遇到一些莫名的问题,导致不能完成想要的功能,可能是某项用法使用错误,或许是angular相对应不支持,或者是我们功力根本就没有达到.为了在每次采坑之后能有所收获,再遇到时能理解其根 ...
- Android Studio采坑记录
折腾了几个月的Android Studio,终于在今天被我搞定了 ( ̄▽ ̄)~* 开贴记录下,免得下次再次采坑 先说下我之前电脑的环境配置吧,sdk是几年前在网上下载别人整理出来的包,一直没有更新过 ...
- golang采坑记录
安装golang,引入第三方库,采坑 1.获取安装包 go语言中文网:https://studygolang.com/dl 官网地址:https://studygolang.com/dl 2.下载 选 ...
随机推荐
- SQL语句总结---数据库操作
https://blog.csdn.net/hallomrzhang/article/details/85010014 数据库操作 查看所有数据库 show databases; 1 查看当前使用的数 ...
- mysql的下载和安装详细教程(windows)
Windows下安装MySQL详细教程 1.安装包下载 2.安装教程 (1)配置环境变量 (2)生成data文件 (3)安装MySQL (4)启动服务 (5)登录MySQL (6)查询用户密码 ...
- jboss7学习2-jboss7入门(端口和访问的ip问题)
1.下载地址: http://www.jboss.org/jbossas/downloads ,下载Certified Java EE 6 Full Profile版本. 2.解压 jboss-as- ...
- Windows CMD常用命令集合
CMD命令: 开始->运行->键入cmd或command(在命令行里可以看到系统版本.文件系统版本) chcp 修改默认字符集chcp 936默认中文chcp 65001 1. appwi ...
- <!--[if IE]><style></style><![endif]-->
CSS hack就是为了让你的CSS代码兼容不同的浏览器,其中最难对付的就是IE浏览器的兼容性,因为它的版本很多,不过还好,微软发表声明已经不对IE8以下的版本进行维护了.但是我们也不能就认为不用学I ...
- Django项目引入NPM和gulp管理前端资源
前言 之前写了一篇<Asp-Net-Core开发笔记:使用NPM和gulp管理前端静态文件>,现在又来用Django开发项目了,之前我搞了一个Django的快速开发脚手架「DjangoSt ...
- Windows下FFMEPG编译
FFMPEG在Windows下编译(MIMO431) /************************************************************************ ...
- 4.Docker容器学习之Dockerfile入门到放弃
原文地址: 点击直达 0x01 Dockerfile 编写 描述:Dockerfile是一个文本格式的配置文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内 ...
- 记一次MySql重置root密码无效
说起这个事情吧也相对来说比较尴尬,对于一个技术来说忘记密码然后找回密码都是相当简单的一个事情,但是在生产环境中没有保存记录只能是自己的失职,尴尬就尴尬在明明重置成功了却没有生效,弄得好几个工程师在哪里 ...
- 【大学物理实验】01 单摆测重力加速度 的 g 计算代码
单摆测重力加速度 传统摆 (代码没保存,就截了个图) 研究单摆周期与摆长之间的关系 (依旧是g的计算) 我还不太会数据拟合