node小bug记录草稿
# 1.使用exec命名,中文输出乱码
使用 iconv-lite
demo:
var exec = require('child_process').exec;
var iconv = require('iconv-lite');
exec('ping 127.0.0.1',{encoding:'binary'},function(err,stdout,stderr){
let str = iconv.decode(new Buffer(stdout,'binary'),'GBK')
console.log(str)
});
1
2
3
4
5
6
2
3
4
5
6
# 2. sql批量插入
this.connection.query('INSERT INTO user(id,name) VALUES ?',[[[1,'a'],[2,'b']]])
1
注意的是params参数外面包了一层[],sql语句 VALUES后面只带?
# 3. 下载文件,文件名乱码
try {
var filePath = path.join(__dirname, '../') + '/files/xls/demo.xlsx'
// 定位到具体文件
var stats = fs.statSync(filePath)
if (stats.isFile()) {
// 对指定的中文名进行utf8编码,否则直接filename=中文名 将不生效还是使用原来文件名
res.set({
'Content-Type': 'application/octet-stream',
'Content-Disposition': "attachment; filename*=UTF-8''" + encodeURI('App提交模板.xlsx'),
'Content-Length': stats.size
})
res.send(stats)
} else {
res.status(404).end()
}
} catch (error) {
res.status(404).end()
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
编辑 (opens new window)
上次更新: 2023/08/23, 09:32:05