初试Nodejs——使用keystonejs创建博客网站1,安装keystonejs

我正在阿里云上创建一个简单的个人博客网站,刚好正在尝试NodeJs,决定找一款基于NodeJs的CMS来完成这个工作,最后找到了KeyStoneJS。

KeyStoneJS是基于Express和MongoDB的CMS架构,详细介绍参见官网http://keystonejs.com/zh/。本文记录一下keystonejs的安装过程,后续将记录基于keystonejs的二次开发过程。

keystonejs的安装过程并不复杂,但由于涉及到node.js,MongoDB,yo等安装,如果某一步陷到坑里,就会花费不少时间。另外由于我租用的是windows操作系统,需要在IIS中运行网站,因此还需要针对windows的一些设置。大致的安装步骤如下:

1、安装node.js

2、安装MongoDB

3、安装yo

4、安装keystone

5、用yo 创建新的网站

6、测试网站

7、安装iisnode

8、在IIS中运行网站

1、安装node.js。keystonejs基于node.js,因此,首先要安装node.js。这一步比较简单,从nodejs的官网直接下载相应的安装包就可以了(https://nodejs.org)。

2、安装MongoDB。keystonejs使用MongoDB作为数据库,首先要从官网下载安装包https://www.mongodb.com/download-center,安装过程比较简单,安装完成后需要做一些配置,可以参加官网的安装指南

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/。需要注意的是,安装完成后,需要设置数据库文件的位置,为数据库文件创建一个目录,运行mongod.exe配置这个目录:

"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" --dbpath d:\test\mongodb\data

我希望MongoDB作为windows的一个服务运行,因此需要为mongodb配置服务。

首先为数据库创建数据目录和日志目录:

mkdir c:\data\db
mkdir c:\data\log

然后在MongoDB的安装目录中创建配置文件mongod.cfg,比如C:\Program Files\MongoDB\Server\3.2\mongod.cfg,指明这两个目录:

systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

最后,应管理员身份运行命令行,执行创建服务的命令:

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB\Server\3.2\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

这样,就可以启动MongoDB了:

net start MongoDB

3、安装yo。yo是Yeoman制作的生成器需要,官网是http://yeoman.io/。keystonejs使用yo来生成网站,如果没有安装yo的话,需要使用npm进行安装。

npm install -g yo

4、安装keystonejs的生成器

npm install -g generator-keystone

到这里keystonejs的安装就完成了,下面是使用keystonejs创建一个简单的网站。

5、为网站创建一个目录,并创建文件

比如我们创建了mywebsite的目录,在控制台中,进入这个目录,并运行:

yo keystone

生成器开始运行,在生成过程中会问你一些问题,并进行配置。还会从npm中安装依赖项。

6、测试生成的网站

安装完成后,可以测试一下生成的网站,运行:

node keystone
在浏览器中打开http://localhost:3000,应该能看到运行的网站。

7、安装iisnode。由于我希望自己的网站在IIS中运行,因此需要安装iisnode.

首先要下载iisnode并进行安装:

https://github.com/tjanczuk/iisnode

还需要安装iis的URL Rewrite模块。

然后再网站的根目录下增加web.config文件,将重定向定位到keystone.js:

<configuration>

<system.webServer>

<handlers>

<add name="iisnode" path="keystone.js" verb="*" modules="iisnode" />

</handlers>

<rewrite>

<rules>

<rule name="Catch All">

<match url="/*" />

<action type="Rewrite" url="keystone.js" />

</rule>

</rules>

</rewrite>

</system.webServer>

</configuration>

8、最后,在IIS中创建新的网站,并将路径指向网站的目录。还要说明的是,需要进行网站目录的权限设置,给IUser完全控制的权限。

好了,可以运行了,比如我创建的这个网站http://www.jiagoush.cn

下一步需要在keystonejs基础上进行定制开发,首先要修改jade模板,使界面符合自己的要求,然后要增加一些新的功能,比如博客的评论等等。后续会将这些开发过程记录下来。