Sha*_*ikh 4 javascript mysql node.js knex.js
我正在使用knexjs我以格式插入数据,YYYY-MM-DD HH:mm:ss例如2017-07-14 15:00:00,在获取数据时保存后,datetime列值将作为javasript Date对象返回.我想以格式返回那些对象,YYYY-MM-DD HH:mm:ss但它以格式返回,YYYY-MM-DDTHH:mm:ss.000Z例如2017-06-23T06:44:44.000Z.我通过手动迭代和转换它们来返回它们.我想知道是否有其他方法可以像在mysql驱动程序或knexjs配置中那样做.目前我的knexjs配置是这样的.
var connection = require('knex')({
client: 'mysql',
connection: {
host: db.host,
user: db.user,
password: db.password,
database: db.database,
timezone: 'UTC'
}
});
Run Code Online (Sandbox Code Playgroud)
Sir*_*Haq 10
用这个改变你的连接对象:
var connection = require('knex')({
client: 'mysql',
connection: {
host: db.host,
user: db.user,
password: db.password,
database: db.database,
timezone: 'UTC',
dateStrings: true
}
});
Run Code Online (Sandbox Code Playgroud)
Mik*_*stö 10
这就是mysql驱动程序将从数据库读取的类型转换为javascript的方式(https://github.com/mysqljs/mysql#type-casting)
您可以通过添加typeCast连接选项来覆盖默认转换:
var moment = require('moment');
var connection = require('knex')({
client: 'mysql',
connection: {
host: db.host,
user: db.user,
password: db.password,
database: db.database,
timezone: 'UTC',
typeCast: function (field, next) {
if (field.type == 'DATETIME') {
return moment(field.string()).format('YYYY-MM-DD HH:mm:ss');
}
return next();
}
}
});
Run Code Online (Sandbox Code Playgroud)
我不确定您是否需要添加自定义解析DATETIME或TIMESTAMP键入.