日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Clouda框架开发留言板实例

發布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Clouda框架开发留言板实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在看node.js的web開發框架Clouda,目前的版本為0.9,看來第一個大版本1.0的功能應該基本齊全了。

那么這里就試著開發出一個簡單的留言板系統實例,和大家分享一下。


安裝配置什么的就不說了,留言板也比較簡單,一個輸入框,一個留言列表。下面就直接上代碼了。

建立一個messageboard的項目。

首先是model,數據模型包括用戶名、時間、留言內容。

Model.messageboard = function(exports){exports.config = {fields: [{name:'name', type:'string'},{name:'message', type:'string'},{name:'time', type:'datetime',defaultValue:'now()'}]}; };

然后是controller,包括PubSub模型和場景的生命周期管理。

publish下的:

module.exports = function(fw){fw.publish('messageModel', 'pub-messageboard', function(callback){var collection = this;collection.find({}, {sort:[['time',1]]}, function(err, items){callback(items);});},{beforeInsert : function(serverCollection, structData, userinfo, callback){structData.time = (new Date()).valueOf(); // 以服務器時間為準 callback(structData); }}); };

controller下的:

sumeru.router.add({pattern: '/messageboard',action: 'App.messageboard'}); sumeru.router.setDefault('App.messageboard'); App.messageboard = sumeru.controller.create(function(env, session){var getMsgs = function(){session.messages = env.subscribe('pub-messageboard', function(msgCollection){session.bind('messageboard_container', {data : msgCollection.find(),});});};//onready is respond for event binding and data manipulateenv.onready = function(){session.event('messageboard_container', function(){document.getElementById("messages").style.height = document.body.clientHeight - 80 + "px";document.getElementById('messages').scrollTop = document.getElementById('messages').scrollHeight;});window.onresize = function(){document.getElementById("messages").style.height = document.body.clientHeight - 80 + "px";document.getElementById('messages').scrollTop = document.getElementById('messages').scrollHeight;};session.eventMap('#inputMessage', {'keydown' : function(e){if(e.keyCode == 13){sendMessage();}}});//send messagedocument.getElementById("send").addEventListener('click',sendMessage);};var sendMessage = function(){var input = document.getElementById('inputMessage'),inputVal = input.value.trim();var inputName = document.getElementById('inputName'),inputValName = inputName.value.trim();if (inputVal == '' || inputValName == '') {alert("用戶名和消息不能為空!");return false;};session.messages.add({name: inputValName,message : inputVal,time : (new Date()).valueOf()});session.messages.save();input.value = '';input.focus(); };//onload is respond for handle all data subscriptionenv.onload = function(){ return [getMsgs]; };//sceneRender is respond for handle view render and transitionenv.onrender = function(doRender){doRender('messageboard', ['push', 'left']);};});

然后是view,顯示一個輸入框和所有的留言。

<div style="width:800px;margin:auto;"><h1>留言板</h1> <div><label for="inputName">昵稱:</label><input id="inputName" placeholder="Name" /><br /><input id="inputMessage" placeholder="請在此處留言!" style="height:80px;width:700px;" /><br /><button id="send">提交</button></div> <block tpl-id="messageboard_container"><div id="messages" style="border-top:1px solid #333;margin:15px;">{{#each data}}<div class="username" style="border-top:1px dotted #333;margin-top:15px;">`this`.`username`<span class="time" style="padding-left:20px;">{{$Library.getChatTime.getTime(this.time)}}</span></div><div class="content">`this`.`message`</div> {{/each}}</div></block></div>


然后在瀏覽器中輸入:

http://localhost:8080/debug.html/messageboard

出現

大功告成~

轉載于:https://blog.51cto.com/jiaming/1354376

總結

以上是生活随笔為你收集整理的Clouda框架开发留言板实例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。