Node.js怎么处理数据库中日期类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js怎么处理数据库中日期类型相关的知识,希望对你有一定的参考价值。

建议是,数据库中不要用日期类型,用字符型。 java将日期转化成指定的格式的字符串后,再保存到数据库中。 这样,不依赖数据库,也不依赖操作系统。(不同的数据库,不同的操作系统日期表示可能不同。) 参考技术A 在node.js中处理日期类型可以考虑使用 moment.js来处理。
var moment = require('moment');
user.createtime = moment(user.createtime).format('YYYY-MM-DD HH:mm:ss');
参考技术B 在node.js中处理日期类型可以考虑使用 moment.js来处理。
var moment = require('moment');
user.createtime = moment(user.createtime).format('YYYY-MM-DD HH:mm:ss');本回答被提问者采纳

[Node.js]Buffer

摘要

在js中是没有二进制类型的,但在处理tcp或者文件流时,必须使用到二进制数据,因此Node.js定义了一个Buffer类型,该类型用来创建一个专门存储二进制数据的缓存区。在Node.js中,Buffer类是随Node内核一起发布的核心库。Buffer库为Node.js带来了一种存储原始数据的办法,可以让Node.js处理二进制数据,每当需要在Node.js中处理I/O操作中移动的数据时,就有可能使用Buffer库。原始数据存储在Buffer类的实例中。一个Buffer类似于证书数组,但她对应于V8堆内存之外的一块原始内存。

创建Buffer类

Buffer可以通过多种方式创建。

//方式一
var buf=new Buffer(10);
//方式二 通过给定的数组 创建Buffer实例
var buf2=new Buffer([10,20,30,40,50]);
//方式三 通过一个字符串创建Buffer实例
//utf-8是默认的编码方式,此外它同样支持一下编码:“ascii”,“utf8”,"utf16le","ucs2","base64"."hex"
var buf3=new Buffer("Hello buffer wolrd","utf-8");

写入缓存区

语法

buf.write(sttring[,offset[,length]][,encoding])

参数描述

string:写入缓存区的字符串。

offset:缓存区开始写入的位置索引,默认为0.

length:写入的字节数,默认为buffer.length.

encoding:使用的编码,默认为utf8.

返回值

返回实际写入的大小。如果buffer空间不足,则会写入部分字符串。

一个例子:

var buf=new Buffer(256);
var len=buf.write("Hello buffer world");
console.log("写入字节数:"+len);

执行

读取数据

语法

buf.toString([encoding[,start[,end]]])

参数描述

encoding:使用编码,默认为utf8.

start:开始读取的位置索引。默认为0

end:结束位置索引,默认为缓冲区的末尾。

返回值

解码缓冲区数据并使用指定的编码返回的字符串。

一个例子

var buf=new Buffer(26);
for (var i = 0; i <26; i++) {
    buf[i]=i+97;
};
console.log(buf.toString("ascii"));
console.log(buf.toString("ascii",0,5));
console.log(buf.toString("utf8",0,5));
console.log(buf.toString(undefined,0,5));

将Buffer转换为Json对象

语法

buf.toJSON()

返回值

返回json对象。

一个例子

var buf=new Buffer("Hello buffer world.");
var json=buf.toJSON();
console.log(json);

缓冲区合并

语法

Buffer.concat(list[,totalLength])

参数描述

list:用于合并的Buffer对象数据列表。

totalLength:指定合并后Buffer对象的总长度。

返回值

返回一个多个成员合并的新Buffer对象。

一个例子

var buf1=new Buffer("Hello buffer ");
var buf2=new Buffer("world.");
var buf3=Buffer.concat([buf1,buf2]);

console.log("合并后内容:"+buf3.toString());

执行

缓冲区比较

Buffer的比较函数在Node.js v0.12.2版本引入,语法如下

buf.compare(otherBuffer)

参数

otherBuffer:与buf对象比较的另外一个Buffer对象。

返回值

返回一个数字,标识buf在otherBuffer之前,之后或者相同。

一个例子

var buf1=new Buffer("ABC");
var buf2=new Buffer("ABCD");
var result=buf1.compare(buf2);

if (result<0) {
    console.log(buf1+" 在 "+buf2+" 之前");
}else if(result==0){
    console.log(buf1+" 与 "+buf2+" 相同");
}else{
    console.log(buf1+" 在 "+buf2+" 之后");
}

拷贝缓存区

语法

buf.copy(targetBuffer[,targetStart[,sourceStart[,sourceEnd]]])

参数

targetBuffer:要拷贝的Buffer对象。

targetStart:要拷贝的对象开始位置,默认0.

sourceStart:源对象开始位置,默认0

sourceEnd:源对象结束位置,默认0

无返回值。

一个例子

var buf1=new Buffer("ABC");
var targetBuf=new Buffer(3);
buf1.copy(targetBuf);
console.log(targetBuf.toString());

缓冲区裁剪

语法

buf.slice([start[, end]])

参数

start:开始裁剪位置。

end:结束位置。

返回值

返回一个新的缓冲区,它和旧缓冲区执行同一块内存,但是从索引start到end的位置剪切。

一个例子

var buf1=new Buffer("wolfy");
var buf2=buf1.slice(0,2);
console.log(buf2.toString());

缓存区长度

语法

buf.length

返回值

返回Buffer对象所占用的内存长度。

一个例子

var buf1=new Buffer("wolfy");
var buf2=buf1.slice(0,2);
console.log(buf2.toString());
console.log(buf2.length);

方法参考手册

http://www.runoob.com/nodejs/nodejs-buffer.html

以上是关于Node.js怎么处理数据库中日期类型的主要内容,如果未能解决你的问题,请参考以下文章

node.JS 中的日期格式

如何使用 Node.js 从 Angular 将日期插入 MySQL DATETIME 列?

将excel中数据用JAVA代码导入到oracle中,遇到日期类型应该怎么处理!?

Hibernate @Temporal 注解处理Java与Mysql时间日期类型的映射关系

java读取excel时间格式出现数字怎么处理

关于springmvc怎么自动把前台string类型日期字段转换成date类型