如何在 Sapper 中使用 mysql2 库?
How to use mysql2 library with Sapper?
我正在 Svelte Sapper 中创建一个应用程序。我有一条 routes/account/login.js
API 路线,我正在尝试使用 mysql2。该路由本身有效(我与 Postman 核对过),但是一旦我导入 mysql,服务器就会崩溃并出现错误:
[rollup-plugin-svelte] The following packages did not export their `package.json` file so we could not check the "svelte" field. If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.
- mysql2
import mysql from "mysql2/promise";
export async function post(req, res) {
//route test
const { login, password } = req.body;
res.end(`${login}, ${password}`);
}
我该怎么做才能使导入工作正常进行?
我该怎么做才能使导入工作正常进行?
Sapper 文档没有说明您是否需要另外更改配置中的某些内容。 https://sapper.svelte.dev/docs#Server_routes
我找到了解决办法。我必须在 src/node_modules
文件夹中创建一个 @lib
文件夹,并在那里创建文件,例如。 db.js
。在该文件中,您需要使用 require()
而不是 import
!然后你必须导出连接到数据库的函数。然后您可以将其导入路径
//src/node_modules/@lib/db.js
const mysql = require("mysql2");
export async function connectToDatabase() {
return mysql.createConnection({
host: "localhost",
....
})
}
//routes/account/login.js
import { query } from "@lib/db";
export async function post(req, res) {
...
}
我正在 Svelte Sapper 中创建一个应用程序。我有一条 routes/account/login.js
API 路线,我正在尝试使用 mysql2。该路由本身有效(我与 Postman 核对过),但是一旦我导入 mysql,服务器就会崩溃并出现错误:
[rollup-plugin-svelte] The following packages did not export their `package.json` file so we could not check the "svelte" field. If you had difficulties importing svelte components from a package, then please contact the author and ask them to export the package.json file.
- mysql2
import mysql from "mysql2/promise";
export async function post(req, res) {
//route test
const { login, password } = req.body;
res.end(`${login}, ${password}`);
}
我该怎么做才能使导入工作正常进行? 我该怎么做才能使导入工作正常进行?
Sapper 文档没有说明您是否需要另外更改配置中的某些内容。 https://sapper.svelte.dev/docs#Server_routes
我找到了解决办法。我必须在 src/node_modules
文件夹中创建一个 @lib
文件夹,并在那里创建文件,例如。 db.js
。在该文件中,您需要使用 require()
而不是 import
!然后你必须导出连接到数据库的函数。然后您可以将其导入路径
//src/node_modules/@lib/db.js
const mysql = require("mysql2");
export async function connectToDatabase() {
return mysql.createConnection({
host: "localhost",
....
})
}
//routes/account/login.js
import { query } from "@lib/db";
export async function post(req, res) {
...
}