簡體   English   中英

mybatis mapper on node express xml 正則表達式錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM