最近刚新搭了一个博客,用的是 MongoDB + Express + NodeJS ,为啥标题这么长不直接用 MEAN.JS 代替,因为为了熟悉整个流程并没有使用 MEAN.JS,而且我也没有带上任何的前端框架,因为前端用什么框架并不重要,用 Angular,React 什么的都可以。为啥现在才开始搭?主要是以前太懒了不爱写博客,现在幡然醒悟了,应该还可以亡羊补牢一下。所以其实网上教程已经非常多了,但是这边还是要记录一下。大部分安装地址都有在最后提供。
废话不多说,先上步骤:
-
NodeJS + NPM + mongoDB
-
创建项目文件夹
-
安装 Express
-
Index.js + nodemon
-
配合 mongoDB
-
补充说明
1.NodeJS + NPM + mongoDB
首先要在电脑里安装 NodeJS 和 NPM,去 NodeJS 的官网下载,能够顺带着也把 NPM 下载下来了,因为我很早就下过了,所以这里不提供具体操作。
我还需要一个 mongoDB 的镜像。我是用 Docker 下载到 Linux 的虚拟机里面(正确姿势是去租个服务器,在服务器里操作),这里不提供安装 Linux 以及 Docker 的具体步骤。
下载 mongoDB 的步骤如下:
1. 首先通过 ssh 连接本机和虚拟机。
接着本机直接运行:
docker run -d -p 27017:27017 -p 28017:28017 tutum/mongodb
就能自动 pull mongoDB 的镜像到 Docker 容器中,
2. 执行 docker ps 查看容器,能够看到有一个 CONTAINER_ID 。
3. 执行 docker logs <CONTAINER_ID> 可以看到下面的内容:
======================================================================== You can now connect to this MongoDB server using: mongo admin -u admin -p 5elsT6KtjrqV--host --port Please remember to change the above password as soon as possible! ========================================================================
其中 5elsT6KtjrqV 是待会儿要用到的密码。
4. 与此同时,我还需要一个可以直接管理 mongoDB 的工具 MongoHub。
配置 MongoHub :下面是我已经配置好的内容,其中 Address 是虚拟机的 IP, Password 就是上面提到的 5elsT6KtjrqV ,这个密码是随机生成的。
设置成功以后就能够连上数据库了。
2.创建项目文件夹
准备工作的时间可能会比较长,下面几步将会比较简单
创建文件夹 $ mkdir myblog
进到文件夹里 $ cd myblog
NPM 初始化 $ npm init
,初始化的时候可以设置入口文件 entry point , 我设置为 index.js
3.安装 Express
接下来需要安装 Express
$ npm install express --save
Express 项目中通常使用 body-parser 进行 post 参数的解析
所以还需要下载 body-parser :
$ npm install body-parser --save
4.Index.js + nodemon
安装完成以后我们可以直接写一些后端的代码。
首先我新建一个 index.js 的文件(因为刚才 npm 初始化的时候指定了 entry point 是 index.js),这里的 index.js 是写后端代码用的,参考 Express 官网,代码如下:
然后打开 terminal ,执行 node index.js ,此时就能通过 http://localhost:3000/ 看到 This is my blog! 字样啦。
nodemon 可以选择性安装。它是什么呢?由于每次修改代码以后都需要重启一下 node,而 nodemon 能够在代码修改了以后自动重启,省去了一些麻烦。安装过程也很简单:
npm install nodemon -g
这边全局安装,然后将 node index.js 替换成 nodemon index.js 去执行就可以了
5.配合 mongoDB
mongoDB 是 NoSQL 型数据库,因此存取方式和以前的 SQL 语句不一样,具体办法可以参考 mongoDB 官网。
下载 $ npm install mongo --save-dev
这里并不是在下载 mongoDB,而是需要这个依赖去支持我们进行一些数据库的操作。
简单写一下,为了方便依旧写在 index.js 里,
6.补充说明
这里并没有列出任何前端代码,也没有写任何前端页面,其实只要是把这些全部搭建好,前后端走通,剩下的只需按照平时工作中负责前端的部分去做就好。完全可以新建一个 index.html 就开始写写写了。
(下面的内容不重要,可以不看。)
我虽然没有写前端页面,但是需要有前端的 post 请求来进行测试,我用到了 postman,不知道什么时候安装到电脑上的 = =。上手比较简单,针对刚才的代码,可以直接像下面这样配置,然后 send,如果发送成功的话,就能看到返回 Success 字样,具体就不细说了。自己折腾去吧 ~
mongoDB 镜像地址:https://hub.docker.com/r/tutum/mongodb/
mongoHub 下载地址:http://www.macupdate.com/app/mac/33918/mongohub
Express 安装地址:http://expressjs.com/en/starter/installing.html