我尝试在node js项目中使用mysql模块(node 18.12,mysql 2.18.1)
在我项目中,我必须使用
“类型”:“模块”
在我的package.json中,因为应用程序是用模块构建的。例如,我在app.js的head中使用此导入
import { createServer } from 'node:http';
import fs from 'node:fs/promises';
import { createTodo, findTodos } from './functions/storage.js';
import { index,create } from './functions/api/api.js';
然后我加上一行就像文档中那样
var mysql = require('mysql');
但当我启动应用程序时,我遇到了这个错误
mysql节点模块“require未在ES模块范围中定义,您可以使用import代替”
我曾尝试将类型更改为commonjs,但在另一种方式中得到相同的错误,尝试将js文件的扩展名更改为cjs或mjs。每次都出现相同类型的错误。
我如何使用mysql与“本机”模块节点应用程序?
我是一个初学者在节点,所以,对不起,如果这是一个愚蠢的问题,但我找不到任何答案的网络。
这是我的包. json
{
"name": "project",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"type": "module",
"keywords": [],
"author": "",
"license": "ISC",
"volta": {
"node": "18.12.1"
},
"dependencies": {
"mysql": "^2.18.1"
}
}
2条答案
按热度按时间z9smfwbn1#
尝试从package.json中删除
"type":"module"
。从How to fix reference error require is not defined in javascript0dxa2lsx2#
我终于在这里找到了答案
我希望这对其他人有用;)