Hello World
Spiga

使用Jscex改进Node Club(1):运行Node Club网站

2012-02-20 14:24 by 老赵, 6269 visits

一直想做个相对完整的项目来演示下Jscex的使用,可惜缺少创意和精力,一直没能实现。前几天看到Node Club将其网站开源了,不禁让我十分欢喜。Node Club网站是个真实案例,复杂度适中,既是Jscex的典型使用场景,又能避开我不擅长的网页样式设计和制作,简直是一个再合适不过的基础样板了。周末我大致看了下代码,也试着将几个部分使用Jscex改进了一下,效果也十分显著,于是打算写作一个系列指引,希望可以对Jscex类库的推广有所帮助。在此第一篇,自然是最基本的环境建设开始说起。

配置系统环境

首先,我强烈建议您可以在GitHub上Fork一下Node Club网站的项目,有个版本管理环境做后盾,做什么都会放心许多。我也将所有修改存放在GitHub上,其master分支是我个人不断改进的版本,您可以时刻关注其最新发展。除此之外,我还创建了一个tutorial分支,专门为这个系列文章存放代码,保持两者进度一致,同时尽量将修改过程和版本提交对应起来。

要运行Node Code,首先您得安装必要的环境:

无论您使用的是Windows,Linux还是OS X,以上都有对应的安装方式,在此就不详细描述了。文章中会出现一些控制台脚本,是我在OS X上运行的命令和结果。如果没有特殊说明,则路径是nodeclub项目的根目录。如果你使用的是Windows,则需要进行一些修改,其实最常见的修改就是分割路径的斜线还有可执行文件的使用。

这里假设您对以上三个工具,最好还包括Git有了一定了解。其实目前也无需十分熟悉,看看官方文档,搜几篇文章瞅瞅,就应该差不多了。

配置Node Club环境

假设您已经下载了Node Club代码(当然最好您是git clone一份自己fork出来项目),并将其解压缩至nodeclub目录中。现在您应该可以使用npm install命令安装所有依赖的包:

$ npm install
eventproxy@0.1.0 ./node_modules/eventproxy 
ejs@0.5.0 ./node_modules/ejs 
validator@0.3.7 ./node_modules/validator 
node-markdown@0.1.0 ./node_modules/node-markdown 
mongoose@2.4.1 ./node_modules/mongoose 
├── colors@0.5.1
├── hooks@0.1.9
└── mongodb@0.9.7-1.4
express@2.5.1 ./node_modules/express 
├── mime@1.2.5
├── qs@0.4.2
├── mkdirp@0.0.7
└── connect@1.8.5
nodemailer@0.3.1 ./node_modules/nodemailer 
├── mailcomposer@0.1.4 (mimelib-noiconv@0.1.6)
└── simplesmtp@0.1.12

要运行网站,则还需要准备一份配置文件。您可以将config.default.js复制一份至config.js文件,并建议修改一下一些配置:

exports.config = {
    // 网站端口号,默认为80,可能会有冲突,建议改成其他值
    port: 8080,

    // 发系统邮件时使用的用户名
    mail_user: 'xxxxx@gmail.com',
    // 发系统邮件时使用的密码
    mail_pass: 'xxxxx',
    // SMTP服务器地址
    mail_host: 'smtp.gmail.com',
    // 系统邮件发信人
    mail_sender: 'xxxxx@gmail.com',
    // 根据需求配置是否验证
    mail_use_authentication: true,
};

其中大部分的设置是在配置系统邮件的SMTP服务器,您可以像我一样使用Gmail,或是跟Node Club原项目一样使用126的邮箱。

运行Node Club网站

要运行Node Club网站,则需要启动MongoDB数据库,例如:

mongodb-osx-x86_64-2.0.2/bin$ mkdir data
mongodb-osx-x86_64-2.0.2/bin$ ./mongodb --dbpath data

此时您就在本地启动了一个MongoDB进程,使用默认端口27017,这与网站的默认配置相符。此时您就可以执行app.js来启动网站:

$ node app.js
NodeClub listening on port 8080 in development mode
God bless love....

在浏览器里访问http://127.0.0.1:8080,您应该就能看到一个空白的Node Club站点:

Node Club空白首页

此时您可以点击右上角的“注册”链接,注册一个名为admin的用户,部分操作(例如标签管理)需要使用该账号才能进行。注册时会要求填一个邮箱,提交后会收到一封激活邮件,但其中的链接可能不能直接访问(遗漏了端口号,应该是个bug),您可以将其地址复制到浏览器里修改并访问。激活成功后便可登录,登陆后会进入空白的后台页面:

Node Club空白后台

至此万事俱备,任何时候您想重启Node Club网站,只需ctrl+c中断node app.js命令再重新运行即可。从下一篇文章开始,我们将正式开始Jscex之旅。

相关文章

  • 使用Jscex改进Node Club(1):运行Node Club网站
Creative Commons License

本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名赵劼(包含链接),具体操作方式可参考此处。如您有任何疑问或者授权方面的协商,请给我留言

Add your comment

10 条回复

  1. 链接

    ciznx 2012-02-20 14:44:09

    占个沙发先,感谢老赵。正在学习 Jscex,并准备用它提高项目代码的各种性。

  2. zero
    202.133.226.*
    链接

    zero 2012-02-20 16:51:25

    在cnode看到了。呵呵。过来支持一下。这个主题不会引起论战吧。

  3. 老赵
    admin
    链接

    老赵 2012-02-20 17:03:07

    @zero

    什么论战?我反正不讲大道理,都用代码说话。

  4. zero
    202.133.226.*
    链接

    zero 2012-02-20 17:16:36

    嗯。等不及下一篇了,叉个老赵的叉下来看看。呵呵。

  5. cloudaice
    61.167.60.*
    链接

    cloudaice 2012-02-21 19:50:19

    我自己搭建了一个,但是不知道为什么,注册了admin的时候,就是没有收到激活邮件,导致admin帐号不能激活,怎么办。

  6. 老赵
    admin
    链接

    老赵 2012-02-21 21:24:43

    @cludaice

    垃圾箱看了没?SMTP服务器怎么设的?实在不行直接去数据库把active字段设为true吧。

  7. 专吃鲍
    74.125.156.*
    链接

    专吃鲍 2012-02-24 15:56:56

    nodeclub.老赵你也在搞呢。

  8. 风来之东林
    202.120.32.*
    链接

    风来之东林 2012-03-01 16:43:58

    感谢老赵的分享,根据你的介绍成功发布nodeclub :)

  9. lyojo
    60.191.32.*
    链接

    lyojo 2014-07-18 15:05:49

    你好,请问我注册了admin账号之后怎么才能进入网站的后台?

  10. Aven7
    118.193.151.*
    链接

    Aven7 2014-11-28 22:05:24

    老赵,我启动的时候出现这个问题,求指导

    [root@MyServer nodeclub]# node app.js

    path.existsSync is now called fs.existsSync.

    Jscex debugging logs: /web/nodeclub/logs/jscex-201411Fr-095244.11/28/2014og

    path.exists is now called fs.exists.

    God bless love....

    events.js:72

    throw er; // Unhandled 'error' event
              ^
    

    Error: ENOENT, open '/web/nodeclub/logs/jscex-201411Fr-095244.11/28/2014og'

发表回复

登录 / 登录并记住我 ,登陆后便可删除或修改已发表的评论 (请注意保留评论内容)

昵称:(必填)

邮箱:(必填,仅用于Gavatar

主页:(可选)

评论内容(大于5个字符):

  1. Your Name yyyy-MM-dd HH:mm:ss

使用Live Messenger联系我