在OnceDoc(NODE.JS)环境下使用HTML和OnceDB(redis)构造表单并存储用户提交的信息
OnceDB Node.JS OnceDoc by newghost on 1476364037723


OnceDB是OnceDoc企业内容(网盘)管理系统的底层数据存储机制。它将Redis扩展增强成为一个可分布式定义模式的内存数据库,即从一个简单的健/值存储数据库,增强为支持索引和关系查询的模式(schema)数据库。在OnceDB中,数据模式将由具体应用模块而不是数据库中心来决定。通过OnceDB您可以自由地、动态地定义数据库模式,或者在扩展模块中修改或扩展数据存储模式。OnceDB既拥有内存数据库的强大性能,又有传统关系型数据库所不具备的模式定制和动态扩展能力。

 

这篇文章介绍如何在OnceDoc中,通过OnceDB定义和构建一个数据表单。

 

第一步、创建表单模块

在mod文件夹下新建form文件夹模块,并在form文件夹中新建form.tmpl文件、package.json文件和svr文件夹,在svr文件夹中新建form.js文件。

package.json文件代码是这样的:

{
"name": "oncedoc_form",
"version": "0.0.1",
"main": "svr/form"
}

 其中name和version这两个属性一起构成了form模块的识别符,main属性指定了程序的主入口文件。

 

第二步、在前端网页中构造表单

这一步中我们编辑前端网页文件form.tmpl,使用Bootstrap的form元素在网页中构造一个简单的表单,供用户输入和提交自己的称呼和电话号码。

<form action="/form/submit.post" id="informationForm" method="post" data-ajax="false">
<div class="form-group">
<label for="inputName">称呼</label>
<input type="text" class="form-control" id="inputName" placeholder="称呼" name="name">
</div>
<div class="form-group">
<label for="inputTel">电话</label>
<input type="text" class="form-control" id="inputTel" placeholder="电话" name="tel">
</div>
<button type="submit" class="btn btn-default" id="information-form-submit">提交</button>
</form>

 

第三步、建立与表单信息相对应的数据库schema

根据我们之前构造的表单,在服务器端的javascript文件form.js中加入与表单信息相对应的数据库架构,示例的架构由id、记录称呼的name和记录电话号码的tel三个属性构成。

oncedb.schema('form', {
"id" : "id;minlen(4);maxlen(32)"
, "name" : "minlen(1);maxlen(32)"
, "tel" : "minlen(5);maxlen(32)"
})

 

第四步、在数据库中插入新条目

继续编辑服务器端的javascript文件form.js,加入app.post函数。当用户点击按钮提交表单时,信息将被存入数据库中。

app.post('form/submit.post', function(req, res) {
var userInfo = req.body

oncedb.insert('form', {
id : +new Date()
, name: userInfo.name
, tel : userInfo.tel
}, function(err) {
if (err) {
res.end(err.toString())
return
}

res.send('提交成功')
})
})

继续编辑服务器端的javascript文件form.js,加入app.post函数。当用户点击按钮提交表单时,信息将被存入数据库中。

 

下一篇: 驱动安装及使用教程