查看: 2745|回复: 2
打印 上一主题 下一主题

[其他] node.js + pomelo + mongoose 服务端开发

[复制链接]

2317

主题

54

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
20645
精华
62

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-12-8 23:46:56 |只看该作者 |倒序浏览
1)node.js服务器开发    npm-isntall.sh 里面调用npm install -d 这样根据当前目录的package.json里面描述的所需要的node_modules来安装对应的模块
2)定义mongoose里面的schemas
3) gate rotes 文件夹  这个是一个路由文件夹 这里面的程序可以理解成 控制器 在这里调用试图文件
4)app.js 文件 应用程序启动文件
5)package.json文件 应用程序配置文件
6)node中的搭建服务器:var http = require('http');
                                http.createServer(function(request, response){});
                                  http.listin(888);

7)mongoose里面的schemas是定义数据库模型的结构定义,preload.js是定义加载的schemas列表,

8)mongoose
Schema  :  一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力
Model   :  由Schema发布生成的模型,具有抽象属性和行为的数据库操作对
Entity  :  由Model创建的实体,他的操作也会影响数据库.
SchemaModelEntity的关系请牢记,Schema生成ModelModel创造EntityModelEntity都可对数据库操作造成影响,但ModelEntity更具操作性。

9)最简单的创建记录
dao.create = function() {
    var cindyModel = dbMongoose.model('cindyAccount');
    var cindyEntity = new cindyModel({name:'cindy'});
    console.log(cindyEntity.name);
    cindyEntity.save();
}

10)game-server采用的是pomelo框架,修改了pomelo原生的web socket长链接,然后改成了pomeloplugin.httpconnector变成了短连接。

11)mongoose很好的官方网站  
http://mongoosejs.com/docs/api.html#types_array_MongooseArray-push
http://www.w3cschool.cc/mongodb/mongodb-aggregate.html
http://docs.mongodb.org/manual/core/aggregation-introduction/

12)strangioc里面的command,是Execute执行的时候dispatcher.AddListener(Formation_Event.FORMATION_SAVE_TOSERVER, OnSaveToServer);所以千万别忘记执行完毕必须把这个命令的监听取消,监听和移除是对应的class PostScoreCommand : EventCommand
  1. {
  2.                 [Inject]
  3.                 IServer gameServer{get;set;}
  4.         
  5.                 override public void Execute()
  6.                 {
  7.                         Retain();
  8.                         int score = (int)evt.data;
  9.                         gameServer.dispatcher.AddListener(ServerEvent.SUCCESS, onSuccess);
  10.                         gameServer.dispatcher.AddListener(ServerEvent.FAILURE, onFailure);
  11.                         gameServer.send(score);
  12.                 }

  13.                 private void onSuccess()
  14.                 {
  15.                         gameServer.dispatcher.RemoveListener(ServerEvent.SUCCESS, onSuccess);
  16.                         gameServer.dispatcher.RemoveListener(ServerEvent.FAILURE, onFailure);
  17.                         //...do something to report success...
  18.                         Release();
  19.                 }

  20.                 private void onFailure(object payload)
  21.                 {
  22.                         gameServer.dispatcher.RemoveListener(ServerEvent.SUCCESS, onSuccess);
  23.                         gameServer.dispatcher.RemoveListener(
  24.                         ServerEvent.FAILURE, onFailure);
  25.                         //...do something to report failure...
  26.                         Release();
  27.                 }
  28.         }
  29. }
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏1 支持支持0 反对反对0
回复

使用道具 举报

heise    

4

主题

3

听众

4249

积分

中级设计师

Rank: 5Rank: 5

纳金币
105
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-12-9 02:33:45 |只看该作者
这一套免费方案看上去不错。
回复

使用道具 举报

0

主题

1

听众

1792

积分

助理设计师

Rank: 4

纳金币
44
精华
0

活跃会员

板凳
发表于 2014-12-9 10:35:13 |只看该作者
谢谢 共享。。。。。。。。。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-18 16:35 , Processed in 0.607107 second(s), 30 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部