前言

从很早开始就想通过Nodejs编写一个属于自己的网站,同时也想分享一些Nodejs开发过程中的一些感悟和经验,不过一直没有实施,再拖下去估计没有下文了=。=。准备从本篇开始,使用Nodejs的Express框架,配合Mongoose数据库构建一个网站,探索基于Nodejs的web应用的快速构建方法,并记录开发过程。目前有如下两个想法:

  1. 类似知乎的网站(特点为限制答题字数,并且启用markdown回答题目),取名简言
  2. 身边很多优秀的程序员居然还木有妹子!不能忍,决定了,写一个帮助程序员把妹的网站,不不不,是帮助妹子领养萌萌的小猿的网站,取名结缘(猿)。

网站文件放在github上,欢迎拍砖点赞 :)

PS: 本篇内容相关源码可以通过tag:v0.0.1进行查看


创建过程

Express是基于Nodejs的一个快速web开发框架,它提供了一个Express application generator可以帮助我们快速创建应用的骨架。

使用如下命令安装generator:

1
$ npm install express-generator -g

安装完成后用以下命令生成骨架,-e选项代表使用EJS模板引擎:

1
$ express -e myapp

生成后的应用文件结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
.
├── LICENSE
├── README.md
├── app.js
├── bin
│   └── www
├── package.json
├── public
│   ├── images
│   ├── javascripts
│   └── stylesheets
│   └── style.css
├── routes
│   ├── index.js
│   └── users.js
└── views
├── error.ejs
└── index.ejs
7 directories, 10 files

  • app.js是express的设置文件
  • bin/www是express执行文件
  • package.json是nodejs项目的配置文件,用于保存应用信息与依赖管理
  • public文件夹为web应用的资源文件夹
  • routes保存路由文件
  • views保存网站的ejs视图代码

然后执行$ npm install安装项目依赖,该命令根据package.json文件中描述的dependencies安装依赖,默认安装到node_modules文件夹下。例如自动生成的package.json文件如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"name": "NodeTurtorials",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"ejs": "~2.3.3",
"express": "~4.13.1",
"morgan": "~1.6.1",
"serve-favicon": "~2.3.0"
}
}

通过$ npm start 或者直接$ node ./bin/www启动项目。

打开浏览器输入localhost:3000查看效果。