const creatUser = "INSERT INTO users(`firstname`,`lastname`,`email`,`password`) VALUES(?)";
const checkRegister = " SELECT * FROM users WHERE email = ? ";
所以我有一个大项目包括很多mysql查询。和mysql包使用字符串存储查询,有一种方法来处理多个字符串在节点js?比如把它们都放到一个文件中,我尝试import fs包然后读取文件,但是它做的工作比我预期的要多。
我认为您仍然可以应用您的想法将所有查询写入一个文件,然后使用fs
模块将它们读取回来。
假设您有一个名为queries.sql
的文件,值之间有一个分号;
分隔符:
const fs = require('fs');
const queries = fs.readFileSync('queries.sql', 'utf8')
.split(';')
.filter((query) => query.trim().length > 0);
console.log(queries); // ["SELECT * FROM users WHERE email = 'john@example.com'", "INSERT INTO users(...) VALUES(...)"]
其余部分应该很简单:)
我认为您应该创建一个POJO(或多个POJO,按某些东西分组查询,如查询的目的)对象与查询。然后你只需要文件。
user-queries.js
module.exports = {
query1: "select * from users",
query2: "select * from users where id=?"
...
};
然后,当你需要用户查询时,你只需要上面的。
const userQueries = require('./user-queries.js');
// Now you can do userQueries.query1, for example.
On in ES Modules
user-queries.js
export default {
query1: "select * from users",
query2: "select * from users where id=?"
...
};
:
import userQueries from './user-queries.js';
// Now you can do userQueries.query1, for example.