【Nodejs开发】第1章 述与环境搭建


请关注我的小站:http://oideas.herokuapp.com/

1.自述

为什么要自述?嗯,先把一些东西说一说吧,首先,我不是什么大神,只是一个刚刚脱离了单身(毕业于2013年,脱于2014年2月8日)的苦B而已,对于nodejs的研究,加起来也不过两周而已,以前是搞java的(现在也是,随便搞搞而已),出于对node的好奇,花了半天时间研究了一下,然后...就有了然后....。那么为什么不是Oideas的demo相关blog,而是OMinds的blog呢?For,青出于蓝胜于蓝....更进一步而已。

另,本站的学习有很多地方参考了@nswbmw大神的blog,有想搭建blog的同学可参见TA的wiki

另,如果blog写的不好,请随便喷。

2.环境搭建

本站的环境
Node.js : 0.10.25
Express : 3.2.6
Mongodb : 2.4.9
开发工具
nodeeclipse
环境安装(如果环境已搭建,请跳过步骤) 以下皆在windows平台

  • 安装nodejs,到Node官网下载相应的msi(我的是64bit,下载的是Windows Installer (.msi) 64-bit),点击安装,猛按next.检验环境是否安装成功 在cmd下输入node -v 显示相关的版本

  • 安装express ,cmd下,输入:npm install -g express 等待下载即可。

  • 安装mongodb ,到mongo官网下载,相应的包解压即可。

  • eclipse下安装node开发插件,可到http://www.nodeclipse.org/查看最新的update site. 目前是:http://dl.bintray.com/nodeclipse/nodeclipse/0.10.0/ ,那么打开eclipse help->install new software 填写update site地址即可,不必安装所有东西,一般core要安装,其他的tools选择安装。

3.新建工程

打开eclipse,新建 Node.js Express Project .名称为OMinds,Template Engine 选择ejs (其他模板自己研究),至此project已经ok了,在cmd下切换到你的项目目录输入 node app.js,如图:
20140217141153.png
打开浏览器:http://localhost:3000/可以看到如下图:
20140217143755.png

(注:另一种建项目的方法,直接新建项目名,cmd切换到项目的同级目录,如:项目为d:\OMinds,那么cmd切换到d盘即可,然后键入:express -e OMinds 安装成功后cd OMinds :npm install,两种方法均可)。


4.工程目录


20140217144126.png
(该部分主要借鉴nswbmw大神的讲解)

app.js:启动文件,或者说入口文件
package.json:存储着工程的信息及模块依赖,当在 dependencies 中添加依赖的模块时,运行 npm install,npm 会检查当前目录下的 package.json,并自动安装所有指定的模块
node_modules:存放 package.json 中安装的模块,当你在 package.json 添加依赖的模块并安装后,存放在这个文件夹下
public:存放 image、css、js 等文件
routes:存放路由文件
views:存放视图文件或者说模版文件

打开 app.js,内容如下图:
20140217152432.png
app.set('port', process.env.PORT || 3000):设置端口为 process.env.PORT 或 3000。
app.set('views', __dirname + '/views'):设置 views 文件夹为存放视图文件的目录,即存放模板文件的地方,dirname 为全局变量,存储当前正在执行的脚本所在的目录。
app.set('view engine', 'ejs'):设置视图模版引擎为 ejs。
app.use(express.favicon()):connect 内建的中间件,使用默认的 favicon 图标,如果想使用自己的图标,需改为app.use(express.favicon(dirname + '/public/images/favicon.ico')); 这里我们把自定义的 favicon.ico 放到了 /public/images 文件夹下。
app.use(express.logger('dev')):connect 内建的中间件,在开发环境下使用,在终端显示简单的日志,比如在启动 app.js 后访问 localhost:3000,终端会输出:


Express server listening on port 3000
GET / 200 21ms - 206b
GET /stylesheets/style.css 304 4ms>


假如你去掉这一行代码,不管你怎么刷新网页,终端都只有一行 Express server listening on port 3000。

app.use(express.bodyParser()):connect 内建的中间件,用来解析请求体,支持 application/json, application/x-www-form-urlencoded, 和 multipart/form-data。

app.use(express.methodOverride()):connect 内建的中间件,可以协助处理 POST 请求,伪装 PUT、DELETE 和其他 HTTP 方法。
app.use(app.router):调用路由解析的规则。
app.use(express.static(path.join(__dirname, 'public'))):connect 内建的中间件,设置根目录下的 public 文件夹为存放 image、css、js 等静态文件的目录。


if ('development' == app.get('env')) {  app.use(express.errorHandler());}


开发环境下的错误处理,输出错误信息。
app.get('/', routes.index):路由控制器,如果用户访问 / (主页),则由 routes.index 来处理,routes/index.js 内容如下:



exports.index = function(req, res){  res.render('index', { title: 'Express' });};

通过 exports.index 导出 index 函数接口,app.get('/', routes.index) 相当于:



app.get('/', function(req, res){  res.render('index', { title: 'Express' });});

以上的内容介绍均来自nswbmw大神,为什么我直接拿过来了呢,因为TA讲的却是很好,而且这一部分还是很有用的。 那么现在,app.js文件中删除:



app.get('/', routes.index);app.get('/users', user.list);

添加:routes(app);
并在index.js中修改为如下:



module.exports = function(app) {  app.get('/', function (req, res) {    res.render('index', { title: 'Express' });  });};

再次在cmd下启动服务,打开浏览器看一下,你会发现效果是一样的。
为什么要删掉上面两行代码呢,app.get('/users', user.list);//路由控制每加一个路由控制就要接一句app.get()或者是app.post(),当路由很多时,app.js里面的代码就会很多,不便于维护和修改。所以换一种写法,在index.js里面写路由控制。
以上是本章的主要内容,下一章开始建我们的OMinds。

源码已上传到git,点击这里下载

ideas-ominds交流群:158325682,有想要一起做的,或者有什么不懂的都可以找我哦。

第一次,blog写的不太好,后面会改进。。。。


你可能感兴趣的:(mongodb,nodejs,nodejs开发,nodejs入门)