mysql节点模块给予我一个错误“require is not defined”

pkbketx9  于 2022-12-17  发布在  Mysql
关注(0)|答案(2)|浏览(163)

我尝试在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"
  }
}
0dxa2lsx

0dxa2lsx2#

我终于在这里找到了答案

const require = createRequire(import.meta.url);
var mysql      = require('mysql');

我希望这对其他人有用;)

相关问题