NodeJS 节点上的mybatisMap器express xml正则表达式错误

0s7z1bwu  于 2023-01-04  发布在  Node.js
关注(0)|答案(3)|浏览(225)

当我通过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
打开网页没有错误

8tntrjer

8tntrjer1#

是,因为对象中的新RegExp()存在语法错误。标准SqlFormatter中的新令牌化程序(/home/minieyes 85/node_modules/sql-格式化程序/lib/core/令牌化程序. js:74:36)存在创建字正则表达式(/home/minieyes 85/node_modules/sql-格式化程序/lib/core/regexFactory. js:38:10)。MybatisMapper中的对象中的令牌化程序(/home/minieyes 85/node_modules/sql-格式化程序/lib/languages/StandardSqlFormatter.js:57:14)存在创建字正则表达式(/home/minieyes 85/node_modules/sql-格式化程序/lib/core/格式化程序(js:87:26)。

qacovj5a

qacovj5a2#

是,因为对象中的新RegExp()存在语法错误。标准SqlFormatter中的新令牌化程序(/home/minieyes 85/node_modules/sql-格式化程序/lib/core/令牌化程序. js:74:36)存在创建字正则表达式(/home/minieyes 85/node_modules/sql-格式化程序/lib/core/regexFactory. js:38:10)。MybatisMapper中的对象中的令牌化程序(/home/minieyes 85/node_modules/sql-格式化程序/lib/languages/StandardSqlFormatter.js:57:14)存在创建字正则表达式(/home/minieyes 85/node_modules/sql-格式化程序/lib/core/格式化程序(js:87:26)。

eivnm1vs

eivnm1vs3#

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)”的代码,其中没有foramt。
然后我会向开源团队报告这一现象。
如果你有类似以上的问题,请尝试这种方式.

相关问题