[英]mybatis mapper on node express xml regular expression error
當我通過 node express + mybatis-mapper 打開 web 頁面時,它可以在我的 PC(windows + vscode)上的開發環境中運行。 但它不適用於 linux(ubuntu) 服務器,並顯示以下錯誤消息。
好像是xml編碼錯誤,但是我找不到解決方法。 (例如特殊字符 & -> /amp )
請幫我找到路..
SyntaxError: Invalid regular expression: /^([\p{Alphabetic}\p{Mark}\p{Decimal_Number}\p{Connector_Punctuation}\p{Join_Control}]+)/: Invalid escape
at new RegExp (<anonymous>)
at Object.createWordRegex (/home/minieyes85/node_modules/sql-formatter/lib/core/regexFactory.js:38:10)
at new Tokenizer (/home/minieyes85/node_modules/sql-formatter/lib/core/Tokenizer.js:74:36)
at StandardSqlFormatter.tokenizer (/home/minieyes85/node_modules/sql-formatter/lib/languages/StandardSqlFormatter.js:57:14)
at StandardSqlFormatter.format (/home/minieyes85/node_modules/sql-formatter/lib/core/Formatter.js:87:26)
at Object.format (/home/minieyes85/node_modules/sql-formatter/lib/sqlFormatter.js:74:29)
at MybatisMapper.getStatement (/home/minieyes85/node_modules/mybatis-mapper/index.js:109:32)
at router.get (/home/minieyes85/routes/main.js:51:28)
at Layer.handle [as handle_request] (/home/minieyes85/node_modules/express/lib/router/layer.js:95:5)
at next (/home/minieyes85/node_modules/express/lib/router/route.js:144:13)
檢查 vscode 文本編輯器編碼的首選項設置 -> utf-8
無誤打開web頁面
是的,因為在新的 Tokenizer (/home/minieyes85/node_modules/sql-格式化程序/lib/core/Tokenizer.js:74:36) 在 StandardSqlFormatter.tokenizer (/home/minieyes85/node_modules/sql-formatter/lib/languages/StandardSqlFormatter.js:57:14) 在 StandardSqlFormatter.format (/home/ minieyes85/node_modules/sql-formatter/lib/core/Formatter.js:87:26) 在 Object.format (/home/minieyes85/node_modules/sql-formatter/lib/sqlFormatter.js:74:29) 在 MybatisMapper.getStatement
是的,因為在新的 Tokenizer (/home/minieyes85/node_modules/sql-格式化程序/lib/core/Tokenizer.js:74:36) 在 StandardSqlFormatter.tokenizer (/home/minieyes85/node_modules/sql-formatter/lib/languages/StandardSqlFormatter.js:57:14) 在 StandardSqlFormatter.format (/home/ minieyes85/node_modules/sql-formatter/lib/core/Formatter.js:87:26) 在 Object.format (/home/minieyes85/node_modules/sql-formatter/lib/sqlFormatter.js:74:29) 在 MybatisMapper.getStatement
const mysql = require('mysql2');
const mybatisMapper = require('mybatis-mapper');
// create the connection to database
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'test'
});
// create the myBatisMapper from xml file
mybatisMapper.createMapper([ './fruits.xml' ]);
// SQL Parameters
var param = {
category : 'apple',
price : 100
}
// Get SQL Statement
var format = {language: 'sql', indent: ' '};
var query = mybatisMapper.getStatement('fruit', 'testBasic', param, format);
// Do it!
connection.query(query, function(err, results, fields) {
console.log(results);
console.log(fields);
});
在上面的代碼中,var format <- 這個變量在 ubuntu 中是有問題的,所以我刪除了 var format 並編寫了沒有 foramt 的代碼,如“mybatisMapper.getStatement("",",param)"。
然后我會報告這個現象開源團隊。
如果您有上述問題,請嘗試這種方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.