mybatis mapper在节点上表达XML正则表达式错误



当我通过node express + mybatis-mapper打开网页时,它在我的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

打开网页没有错误

是,因为语法错误at new RegExp ()在对象。createWordRegex (/home/minieyes85/node_modules/sql-formatter/lib/核心/regexFactory.js: 38:10)/home/minieyes85/node_modules/sql-formatter/lib/core/Tokenizer.js:74:36在StandardSqlFormatter。记号赋予器(/home/minieyes85/node_modules/sql-formatter/lib/语言/StandardSqlFormatter.js: 57:14)在StandardSqlFormatter。格式(/home/minieyes85/node_modules/sql-formatter/lib/核心/Formatter.js: 87:26)在对象。格式(/home/minieyes85/node_modules/sql-formatter/lib/sqlFormatter.js: 74:29)在MybatisMapper.getStatement

是,因为在对象的new RegExp()语法错误。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)/home/minieyes85/node_modules/sql-formatter/lib/core/Formatter.js:87:26)(/home/minieyes85/node_modules/sql-formatter/lib/sqlFormatter.js:74:29) at 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,并编写了像mybatisMapper.getStatement("","",param)一样没有格式的代码。

最新更新