本文介紹了如何將MySQL與Sveltekit/NodeJS集成的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
對于NodeJS項目,我通常只遵循以下標準示例:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});
connection.end();
Sveltekit不允許var mysql = require('mysql');
因此我嘗試將其替換為import { mysql } from 'mysql';
這也不起作用。
不確定是否有人有這方面的經驗,可以指導我理解我的錯誤。
推薦答案
1.安裝mysql2包
npm install --save mysql2
2.設置MySQL連接
lib/db/mysql.js
import mysql from 'mysql2/promise';
export const mysqlconn = await mysql.createConnection({
host: '<myhost>',
user: 'root',
password: 'mypassword',
database: 'mydatabase'
});
3.創建API端點
routes/api/read.js
import { mysqlconn } from '$lib/db/mysql';
export async function get() {
let results = await mysqlconn.query('SELECT * FROM mytable')
.then(function([rows,fields]) {
console.log(rows);
return rows;
});
return {
body: results
}
}
更新
哪個更好?是上面的代碼還是這個代碼?
1.安裝mysql2包
npm install --save mysql2
2.設置MySQL連接
lib/db/mysql.js
import mysql from 'mysql2/promise';
let mysqlconn = null;
export function mysqlconnFn() {
if (!mysqlconn) {
mysqlconn = mysql.createConnection({
host: '<myhost>',
user: 'root',
password: 'mypassword',
database: 'mydatabase'
});
}
return mysqlconn;
}
3.創建API端點
routes/api/read.js
import { mysqlconnFn } from '$lib/db/mysql';
export async function get() {
let mysqlconn = await mysqlconnFn();
let results = await mysqlconn.query('SELECT * FROM mytable')
.then(function([rows,fields]) {
console.log(rows);
return rows;
});
return {
body: results
}
}
更新2
您還可以在hooks
中設置MySQL連接。
參考:https://github.com/sveltejs/kit/issues/1538#issuecomment-1002106271
這篇關于如何將MySQL與Sveltekit/NodeJS集成的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,