怎么在array arrayexpress数据库里批量下载数据

近些年来,使用高通量技术对基因表达谱进行检测成为了一种流行的技术手段。例如基因芯片和基因表达系列分析(SAGE)可以同时对成千上万个基因表达进行定量分析。SDSPB_GEO作为公共信息资源,对用户提供免费的数据查询、数据在线下载服务。SDSPB_GEO目前存储了大量基因表达测量信息,来自多个生物体,涵盖了各种生物组织。在我们的网站,你可以快速地搜索和查看需要的数据。
主数据库中的记录种类如下:
平台(Platform):描述了芯片的特性,如cDNA,寡核苷酸等。一个平台可以被不同样本、不同系列引用。
样本(Sample):描述了单独的待测生物样本是如何从未处理状态到形成最后的提交数据,包括经过了何种处理,处理后以何种方式保持存活或生长,如何从中提取等待测生物分子,生物分子如何被标记,如何杂交,如何扫描,如何经过处理从原始数据转化为提交数据,以及最后提交结果中每种分子的测量值。一个样本只能引用一种平台,却可被多个系列引用。
系列(Series):一个系列包括一组相关的样本,以及对整个研究的介绍。一个系列可以引用多个样本,可以引用多个平台。
补充文件(Supplementary files):辅助说明样本的文件,可以是原始图像文件或者直接从图像文件抽出的数据文件。
数据集(Dataset):数据集是由系列整理后形成的,一个系列可以形成一个或多个数据集。一个数据集只引用一个平台,且经过处理后,同一个数据集内不同芯片间同一个基因的值可以直接比较。
表达谱(Profile):从数据集中抽取出的,一个基因在不同样本中的表达值组成的数组。
集合检索结果展示
[1]数据集正式编号
[2]记录标题
[3]数据集类型
[4]数据集描述
[5]记录相关联的文献
[6]样本物种名
[7]平台物种名
[8]数据集特征数
[9]表达值类型
[10]数据集记录相关联的平台,点击后打开平台记录的详细结果页面。
[11]数据集记录相关联的系列,点击后打开系列记录的详细结果页面。
[12]公布日期
[13]更新日期
[1]系列记录的状态,如果数据已经公布,则显示公布日期,如果没有公布,显示提交日期,如果已经realeased,显示obsolete。
[2]记录标题
[3]样本物种名
[4]系列类型
[5]记录的描述
[6]数据参考网页
[7]系列记录的贡献人
[8]记录相关联的文献
[1]平台记录的状态,如果数据已经公布,则显示公布日期,如果没有公布,显示提交日期,如果已经realeased,显示obsolete。
[2]记录的标题
[3]技术类型
[4]发布类型
[5]相关联的物种
[6]记录的描述字段
[7]数据参考网页
[8]平台记录的贡献人
[9]记录相关联的文献记录
[1]样本记录的状态,如果数据已经公布,则显示公布日期,如果没有公布,显示提交日期,如果已经realeased,显示obsolete。
[2]记录的标题
[3]样本类型
[4]样本锚定酶
[5]样本tag数量
[6]样本tag长度
[1]样本杂交详细步骤
[2]样本扫描详细步骤
[3]样本描述
[4]样本数据处理详细步骤
[1]生物材料名称
[2]物种名称
[3]生物材料特性
[4]生物材料提供者
[5]生物材料处理详细步骤
[6]抽提分子类型
[7]分子抽提详细步骤
[8]分子标记类型
[9]分子标记详细步骤
表达谱高级检索
点击左侧菜单栏,进入集合高级检索界面页面,可选的限定符有Gene Symbol(基因符号),GEO Accession
(GEO编号)。高级检索可以最多使用两个限定词来进行更精确的检索,两个限定词之间可以用“AND”和“OR”相连接,其中“AND”表示查询的结果中必须包含它所连接的两个关键词,“OR”表示查询的结果中至少包含它所连接的关键词中的一个。
表达谱检索结果展示
[1]相关联的数据集编号
[2]平台编号,点击后打开平台对应的详细结果页面。
[3]探针编号
[4]样本物种名
[5]基因符号
[6]记录相关联的数据集标题
[7]表达谱的缩略图,点击缩略图链向该表达谱的详细结果
[1]红色的长条代表该基因在不同样本上的表达值的大小,可以为负值。对应表达值记录的值字段。
[2]蓝点表示该基因在样本全部基因中的秩。对应表达值记录的秩字段。
[3]左侧的纵坐标为表达值大小。
[4]右侧的纵坐标为映射到0至100%的秩。
[5]样本名称。
[6]图标底部的紫色条代表了Dataset中实验的子集,一个子集具有一到多个样本。每个子集都有一个类型,即图中的绿色条(如cell type),描述(如androgen sensitive)
SOFT格式说明
SOFT (Simple
Omnibus Format in Text)是为了快速提交数据及批量下载数据而设计的。SOFT是一种以行为基础的文件格式,可以很容易地从电子表格和数据库中产生。单独的一个SOFT文件中可以包含为多个样本、系列或者平台而准备的数据信息和描述信息。同时也可以将Affymetrix的CHP文件或者其他补充性文件即Affymetrix的CEL格式或GenePix的GPR格式一起组成压缩文件。
在SOFT格式中有四种可以被识别的行,这些行的第一个字符指明了该行的类型。如下表
实体声明行
实体属性行
数据表头描述行
除了数据行以外,另外三种行都是“标签-值”对的形式组织的。即下面的形式。
[首字符] [标签] = [值]
注:值中也可以包含等号。
实体声明行可能采取的三种形式(详细的格式说明请见附录)
Entity type
Example entity indicator line
^PLATFORM = my_array_name
^SAMPLE = my_sample_name
^SERIES = my_series_name
^DATABASE = GeoMiame(只在出库的时候有用,而且属性是固定的)
实体属性行:
“1”代表必须且只能有一个值。
“1 or more”代表必须,可以有一个或多个值。
“0 or more”代表可选,可以有零个或多个值。
^PLATFORM = GPL5
表示当前处理记录类型为PLATFORM。
!Platform_title = Dmel.testis.1.0
平台表的标题字段。
!Platform_geo_accession = GPL5
只有NCBI_GEO数据更新时才会有这一行。用户上传数据时不会有这一行。
!Platform_status = Public on Oct 08 2000
公布日期字段为Oct 08 2000。
!Platform_submission_date = Oct 03 2000
提交日期字段为Oct
!Platform_last_update_date = Oct 28 2005
最后更新日期字段为Oct 28 2005。
!Platform_technology = spotted DNA/cDNA
平台技术类型字段为spotted DNA/cDNA。这一字段只能取如下值:
in situ oligonucleotide
spotted oligonucleotide
spotted DNA/cDNA
oligonucleotide beads
mixed spotted oligonucleotide/cDNA
spotted protein
!Platform_distribution = non-commercial
平台发布类型字段为non-commercial。这一字段只能取如下值:
commercial
non-commercial
custom-commerical
!Platform_organism = Drosophila melanogaster
物种名称。
!Platform_manufacturer = Cardiff
University Array Facility and Wales
平台制造商字段。
!Platform_manufacture_protocol = Bacterial cells were grown in 96
平台制造详细步骤字段。
!Platform_catalog_number
平台目录编号字段。
!Platform_web_link = http://www.walesgenepark.co.uk
新建平台数据参考网页引用记录。
!Platform_support = glass
平台基质字段。
!Platform_coating = aminosilane
平台包被字段。
!Platform_description = The array was assembled using 1,681 testes
ESTs, representing
!Platform_description = An aliquot of the same DNA preparation used
in the sequencing
!Platform_description = Inserts were PCR amplified (1X PCR buffer
[Life Technologies],
Platform_description = Samples of approximately 5 nl of 250 ug/ml
DNA, in 0.1 N NaOH
!Platform_description = Subarrays were printed in duplicate
(DUPLICATE a or b).
!Platform_description = Printing was validated (SPOT_QC) by
hybridization of one array
!Platform_description = SPOT_QC values are hybridization
intensity.
BEST-HIT and
!Platform_description = Keywords = germline sex testis, membrane,
平台描述字段,可能会有多行。
!Platform_pubmed_id =
平台文献引用。
!Platform_contributor = B,,Oliver
平台贡献人字段。
存储方式的选择
现阶段,用户只能通过SDSPB提供的ftp服务器上传自己的数据,仅支持SOFT文件。如果你对于提交过程有任何疑问,请写信至
对于大多数的数据提交,你需要提供以下信息:
芯片的文本描述
如果平台信息在GEO里已经存在,就不必输入。在这种情况下,你只需要输入平台的接收编号。
芯片的参数表格
生物样本的描述
杂化处理结果的表格
对于Affymetrix数据,可以用CHP文件代替表格。
原始未处理的数据文件
外部的原始文件,如Affymetrix的CEL文件或GenePix的GPR文件。
实验的总结性描述
SDSPB的GEO数据库提供如下两种数据下载方式:
1)打包数据的下载
点击左侧的“数据下载”,你可以进入FTP下载我们发布的所有GEO数据。
2)下载查询到的样本数据
在查询结果的页面,在对应的下载区域点击“ftp”链接,即可下载你所查询到的样本数据。
FTP服务器内容和目录结构
我们以ROOT表示SDSPB_GEO根目录。
ROOT-&FTP目录结构.doc
描述FTP目录结构的文档,内容与本部分相同。
ROOT-&NCBI_GEO
存放由NCBI下载的记录,每个星期更新一次,下有两个子文件夹
存放由ftp://ftp.ncbi.nih.gov/pub/geo/DATA/SOFT下载的全部内容。
supplementary/
存放由ftp://ftp.ncbi.nih.gov/pub/geo/DATA/summplementary下载的全部内容。
ROOT-&SDSPB_GEO/
存放SDSPB_GEO自主数据,每个星期更新一次,下有两个子文件夹
by_platform/
GPLxxx/GPLxxx_family.soft.gz
每一种平台对应一个GPLxxx目录,目录下存放着使用该平台的样本数据,以及系列数据。数据文件以gz格式压缩。
by_series/
GSExxx/GSExxx_family.soft.gz
每一个系列对应一个GSExxx目录,目录下存放着与该系列有关的样本数据,以及平台数据。数据文件以gz格式压缩。
GDSxxx/GDSxxx.soft.gz
每一个数据集对应一个GDSxxx目录,以gz格式压缩。由于目前没有维护人员,所以内容暂会为空。
supplementary/
放置用户提交的补充文件。
/samples/GSMxxx/
每个样本的补充文件对应一个GSMxxx目录,下有该样本对应的全部补充文件,
/platforms/GPLxxx/
每个平台的补充文件对应一个GPLxxx目录,下有该平台对应的全部补充文件。
/series/GSExxx/
每个系列的补充文件对应一个GSExxx目录,下有该系列对应的全部补充文件。
1.什么是SDSPB_GEO?
SDSPB_GEO是一个公共数据库,存放科学团体提交的微阵列和其它高通量类型的数据,并免费提供这些资料。除了数据存储以外,一系列以web为基础的界面和应用,可以帮助使用者查询和下载保存在SDSPB_GEO中的实验基因表达特征。
2.怎样向SDSPB_GEO提交我的数据?
为了提交数据,你首先要在SDSPB建立自己的帐号,具有唯一的用户名和密码。你提供的联络信息会显示在你的记录中。
3.为什么我要向SDSPB_GEO提交数据?
将数据提交给我们有几个充分的理由。最重要的理由是你发表研究成果的杂志要求把微阵列数据存在符合MIAME规范的公共数据库,例如SDSPB_GEO。我们努力尽力使数据存储简单化,并提供大量数据提交的帮助。如果对于提交步骤有疑问,请E-mail至lifecenter@scbit.org,我们的管理人员会尽快与你联系。除了更好地满足杂志出版的需求,还有其它在SDSPB_GEO存放数据的重要的好处。你的数据将在存储中心长期保存,和其它SDSPB资源整合,会产生出更多的实用性和可见性。你也可以把指向自己web地址的链接放在数据中,使你的研究被更多的人看到。
SOFT格式说明详细说明
很多样本属性以_[n]结尾,这里[n]意味着样本中的通道数。如!Sample_label_ch[2]=Cy3的含义是。如果是单通道芯片,则_[n]可以省略。
允许标签的个数
允许值及其他限制
任意值,只需要在文件中唯一即可
该值只会作为一个内部引用,不会出现在GEO的记录当中。用户提交数据时,该值可以量任意合法值,更新NCBI_GEO数据时,该值往往就是平台记录的正式编号。
!Platform_title
小于120个字符的一个字符串,必须不同于同一个提交者以前提交的平台标题
描述平台的信息,GEO建议使用如下的命名[institution/
lab]-[species]-[number of features]-[version],比如 &FHCRC Mouse 15K v1.0&。
!Platform_distribution
四种取值commercial,
non-commercial, custom-commercial, 或者
只有MS, MPSS, SARST, or RT-PCR data数据时才使用“virtual”
!Platform_technology
spotted DNA/cDNA, spotted
oligonucleotide, in situ oligonucleotide, antibody, tissue, SARST, RT-PCR,
MS, or MPSS
选取最适合平台的描述
!Platform_organism
需要使用标准的 NCBI Taxonomy 术语
指明平台上的探针是针对哪些物种设计的
!Platform_manufacturer
公司或者实验室的名称
!Platform_manufacture_protocol
描述平台的制造过程,越详细越好,比如说应当包括探针集是如何制备的,芯片的硬件和软件,点样的操作手册。可以包括任意长度的字段,强烈推荐在提交数据时使用详细的描述
!Platform_catalog_number
制造商产品分类号
!Platform_web_link
指向描述该平台的网页,请指向不容易变更的网页。
!Platform_support
芯片的表面类型如glass,
nitrocellulose, nylon, silicon, unknown等
!Platform_coating
芯片的包被类型,如aminosilane, quartz, polysine, unknown.
!Platform_description
其他字段所不包括的信息,如芯片的尺寸等
!Platform_contributor
以下两种格式都可以
“firstname,middleinitial,lastname”
或者“firstname,lastname” firstname至少包括一个字符,并且不能有空格,如果有middleinitial应该是一个字符,lastname至少有两个字符,并且可以包含空格。
列出所有与平台设计有关的人。
!Platform_pubmed_id
一个合法的Pubmed ID,该篇文章应该描述了该平台
!Platform_geo_accession
一个合法的GPL编号,形如GPLxxx
只有在更新时才有用
!Platform_table_begin
不需要有内容
指明数据行开始
!Platform_table_end
不需要有内容
指明数据行结束
任何字符,但应保证在文件中是唯一的。
作为内容的参考,不会出现在最后的GEO记录中
!Sample_title
小于120个字符的一个字符串,必须不同于同一个提交者以前提交的样本标题
描述样本的信息,GEO建议使用如下的命名[biomaterial]-[condition(s)]-[replicate
number], 比如, Muscle_exercised_60min_rep2
!Sample_supplementary_file
补充文件的名称,也可以取“none”
典型的补充文件可以是Affymetrix的CEL文件和EXP文件,GenePix的GPR文件,以及TIFF图像文件。补充文件应该和SOFT文件一起被压缩(在压缩文件中不要包括任何子文件夹)。
!Sample_table
用作数据列的外部文件
到目前为止仅支持Affymetrix CHP文件。这一字段允许指定一个外部的CHP文件,取代!Sample_table_begin这一部分中的内容。而且,一旦指定了CHP文件后,就无需指定!Sample_platform_id了。CHP文件应当在提交时与SOFT文件压缩在一起,但如果在文章中用到了RMA或者其他算法来处理数据,则不应该使用CHP文件 
!Sample_source_name_ch[n]
1 per channel
简要地介绍生物材料以及实验中的一些变量,比如vastus
lateralis muscle, exercised, 60 min
!Sample_organism_ch[n]
需要使用标准的 NCBI Taxonomy 术语
生物材料取自哪些物种。
!Sample_characteristics_ch[n]
列出生物材料的详细描述,越详细越好比如
Strain: C57BL/6
Gender: female
Age: 45 days
Tissue: bladder tumor
Tumor stage: Ta
!Sample_biomaterial_provider_ch[n]
提供生物材料的公司,实验室或者个人
!Sample_treatment_protocol_ch[n]
在提取之前所施加的处理因素,越详细越好,强烈建议加入非常详细的操作过程
!Sample_growth_protocol_ch[n]
在提取之前为了维持细胞的生长或组织的存活的操作步骤,越详细越好,强烈建议加入非常详细的操作过程
!Sample_molecule_ch[n]
1 per channel
可选项有total RNA, polyA
RNA, cytoplasmic RNA, nuclear RNA, genomic DNA, protein, or other
从生物材料中提取的生物分子的类型
!Sample_extract_protocol_ch[n]
用于提取生物分子的操作步骤,越详细越好
!Sample_label_ch[n]
1 per channel
标记提取的生物分子的物质,如biotin, Cy3, Cy5,
!Sample_label_protocol_ch[n]
用于标记生物分子的操作步骤,越详细越好
!Sample_hyb_protocol
用于杂交生物分子的操作步骤,越详细越好
!Sample_scan_protocol
用于扫描图像的操作步骤,越详细越好
!Sample_data_processing
指出数据表中的’Value’字段计算产生的详细步骤,如标准化的方法,数据选择的步骤和参数,转化算法,伸缩参数等,越详细越好
!Sample_description
其他字段不包括的附加信息
!Sample_platform_id
一个合法的平台标识符
引用杂交实验使用的平台,或者使用GPL编号(如果存在的话),或者在同一个SOFT文件内的^Platform.
!Sample_geo_accession
一个合法的GSM编号
仅在更新的时候需要
!Sample_anchor
SAGE的锚定酶
仅在提交SAGE数据时需要
!Sample_type
仅在提交SAGE数据时需要
!Sample_tag_count
SAGE文库中的tag的总数
仅在提交SAGE数据时需要
!Sample_tag_length
SAGE文库中的tag的长度,不包括锚定序列
仅在提交SAGE数据时需要
!Sample_table_begin
不需要有内容
指明数据行开始
!Sample_table_end
不需要有内容
指明数据行结束
任何字符,但应保证在文件中是唯一的。
作为内空的参考,不会出现在最后的GEO记录中
!Series_title
小于120个字符的一个字符串,必须不同于同一个提交者以前提交的系列标题
描述系列的总体设计信息。
!Series_summary
简述本次研究的目的。相关发表文章的摘要非常适合。可以包括任意长的字段
!Series_type
本次研究的类型,例如:time course, dose
response, comparative genomic hybridization, ChIP-chip, cell type comparison, disease state analysis, stress response, genetic modification等
!Series_overall_design
描述实验设计。说明实验中使用了多少样本,如果包括了对照,就要说明哪些是对照样本,以及是否进行了交换染色等
!Series_pubmed_id
指明相关文章的PUBMED ID一般来说,这个PUBMED ID是在提交时无法提供的,因此常常需要在后期文章发表后再补上
!Series_web_link
指向描述整个研究的网页
!Series_contributor
以下两种格式都可以
“firstname,middleinitial,lastname”
或者“firstname,lastname” firstname至少包括一个字符,并且不能有空格,如果有middleinitial应该是一个字符,lastname至少有两个字符,并且可以包含空格。
列出所有与研究有关的人员
!Series_variable_[n]
more dose, time, tissue, strain, gender, cell line, development
stage, age, agent, cell type, infection, isolate, metabolism, shock, stress,
temperature, specimen, disease state, protocol, growth protocol,
genotype/variation, species, individual, or other
比如:!Series_variable_1 = age
!Series_variable_2 = age
这些信息是可选的,不会出现在GSE的记录中,下载时也不会出现,只是在形成GDS数据集时有用
!Series_variable_description_[n]
描述每个变量,比如!Series_variable_description_1
= 2 months
!Series_variable_description_2 = 12 months这些信息是可选的,不会出现在GSE的记录中,下载时也不会出现,只是在形成GDS数据集时有用
!Series_variable_sample_list_[n]
其中的每一个值都是SOFT文件中^Sample的值
标出哪些样本属于哪些组!Series_variable_sample_list_1
= samA, samB
!Series_variable_sample_list_2 = samC, samD
这些信息是可选的,不会出现在GSE的记录中,下载时也不会出现,只是在形成GDS数据集时有用
!Series_repeats_[n]
biological replicate, technical replicate - extract, or technical
replicate - labeled-extract
指明重复的类型,如
!Series_repeats_1 = biological replicate
!Series_repeats_2 = biological replicate
这些信息是可选的,不会出现在GSE的记录中,下载时也不会出现,只是在形成GDS数据集时有用
!Series_repeats_sample_list_[n]
其中的每一个值都是SOFT文件中^Sample的值
标出哪些样本属于哪些组!Series_repeats_sample_list_1
= samA, samB
!Series_repeats_sample_list_2 = samC, samD这些信息是可选的,不会出现在GSE的记录中,下载时也不会出现,只是在形成GDS数据集时有用
!Series_sample_id
合法的样本标识符
引用杂交实验使用的样本,或者使用GSM编号(如果存在的话),或者在同一个SOFT文件内的^Sample
!Series_geo_accession
合法的GSExxx
只有在更新的时候有用
只有一个取值,即Geo
!Database_name
只有一个取值,即Gene Expression Omnibus (GEO)
!Database_institute
只有一个取值,即NCBI NLM NIH
!Database_web_link
只有一个取值,即http://www.ncbi.nlm.nih.gov/projects/geo
!Database_email
只有一个取值,即geo@ncbi.nlm.nih.gov
!Database_ref
只有一个取值,即Nucleic Acids Res. 2005 Jan 1;33 Database Issue:D562-6
由于这些信息都是固定的,没有保存在数据库中的必要,在解析时可以略过。
格式为GDSXXX的正式编号
!dataset_title
对应GDS标题
!dataset_description
对应于数据集:数据集描述。
!dataset_type
对应于数据集:数据集类型
!dataset_pubmed_id
对应于数据集相关联的文献:PubMed ID
!dataset_platform
对应于数据集相关联的平台:正式编号
!dataset_platform_organism
对应于数据集相关联的平台相关联的物种:科学名
!dataset_platform_technology_type
对应于数据集相关联的平台:平台技术类型
!dataset_feature_count
对应于数据集:数据集特征数
!dataset_sample_organism
对应于数据相关联的样本(一般来说不会是一个,但它们的物种应该都一样,我还没有发现不一样的)相关联的物种:科学名。
!dataset_sample_type
对应于数据相关联的样本(一般来说不会是一个,但它们的样本类型应该都一样,我还没有发现不一样的):样本类型。
!dataset_channel_count
对应于数据集: 数据集通道数
!dataset_sample_count
统计数据集相关联的物种的个数
!dataset_value_type
对应于数据集:数据集表达值类型
!dataset_reference_series
数据集相关联的系列
!dataset_order
对应于数据集:数据集次序性
!dataset_update_date
对应于数据集:最后更新日期
形式为GDSXXX_n(n为整数,依次递增),如^SUBSET =GDS344_1,^SUBSET =GDS344_2等
!subset_dataset_id
subset对应的GDS编号,一个subset只对应一个GDS
!subset_description
!subset_sample_id
子类型所包含的样本编号,不同样本以逗号分隔。
!subset_type
类型,即全部样本的一种划分规则。所有类型相同的子类型所包含的样本数应该正好等于数据集全部的样本数。ArrayExpress
To install this package, start R and enter:
## try http:// if https:// URLs are not supported
source("https://bioconductor.org/biocLite.R")
biocLite("ArrayExpress")
In most cases, you don't need to download the
package archive at all.
ArrayExpress
Access the ArrayExpress Microarray Database at EBI and build Bioconductor data structures: ExpressionSet, AffyBatch, NChannelSet
Bioconductor version: Release (3.3)
Access the ArrayExpress Repository at EBI and build Bioconductor data structures: ExpressionSet, AffyBatch, NChannelSet
Author: Audrey Kauffmann, Ibrahim Emam, Michael Schubert
Maintainer: Ugis Sarkans <ugis at ebi.ac.uk>
Citation (from within R,
enter citation("ArrayExpress")):
Installation
To install this package, start R and enter:
## try http:// if https:// URLs are not supported
source("https://bioconductor.org/biocLite.R")
biocLite("ArrayExpress")
Documentation
To view documentation for the version of this package installed
in your system, start R and enter:
browseVignettes("ArrayExpress")
ArrayExpress: Import and convert ArrayExpress data sets into R object
Reference Manual
In Bioconductor since
BioC 2.3 (R-2.8) (8 years)
Artistic-2.0
R (>= 2.9.0), (>= 2.4.0)
SystemRequirements
Depends On Me
Imports Me
Suggests Me
Package Archives
instructions to use this
package in your R session.
Package Source
Windows Binary
Mac OS X 10.9 (Mavericks)
Git source
Package Short Url
Package Downloads Report
Bioconductor
and manuals.
for learning and use.
packages and
Please read the . Post questions about Bioconductor
to one of the following locations:
for questions about Bioconductor packages
list - for package developersexpress如何获取post上来的数组?? - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
请教…express…如何处理post上来的数组, 例如:
a[0].id=123
a[0].name=abc
a[1].id=234
a[1].name=cdf
我从req.body.a监控看到只能得到以下数据
0].name=ab
1].name=cd
貌似是把第一个中括号和最后一个字符去掉了…我估摸着它是不是把我提交的数据当成a[name]=xx,a[id]=xx来处理了…这样的话…req.body.a.name和req.body.a.id是可以取出来的
用formidable得到如下数据:
fields: { ‘title[0].id’: ‘111’, ‘title[1].id’: ‘222’ }
为什么不是:{title : [{id:‘111’}, {id:‘222’}]}…看来用重写bodyParse()啊
post的时候编码就不对吧,得做成字符串格式。前端编码+服务器端解码,这是基本的道理吧。
给你看个例子~看下对你是不是有帮助~
$.post(&/index?c=login&,{v :{&username&:&test&, &password&:&test&}}, function(data){
if(data.code == 0){
window.location.href=&/index?c=toMainPage&;
console.log(data.msg);
获取的方法:
var loginJson = req.body.v;
你不需要post数组,可以把数组转化为json数据,然后post过去~那样就ok啦!
已经解决…数组是没问题的…说的是没问题…但是有时候我想直接form提交上去了…是个数组的形式…里面有对象这样的…
如何解决的呢?
可以看这里.
在 Express 中处理 JSON
推荐你一个模块 qs,也是tj写的,tj就是通过这个模块在expressjs框架中处理类似情况的。可以用这个模块来代替api中的 querystring.parse() 方法。
还有种需求就是客户端发送
user.face=aaa
user.name=bbb
需要解析为
qs模块式无法胜任了,只能自己写了,参考:
对头,老吴
以前的框架rrestjs没有这个模块,自从有了这个模块,前台传对象,后台得到的也是对象,唯一一个很麻烦的就是会结构的确不会变,但是类型都会变成字符串,老吴你看有没有办法能除了保持对象的结构不变,还能保证数据类型一致性呢?
那只有在数据上传上来之后,解析的时候增加if判断了,会影响性能的,我不想这么做
请问如何解决的?
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的

我要回帖

更多关于 expressarray 的文章

 

随机推荐