“真实世界”全栈开发-3.2-后端的结构和服务器的运行

2018-02-04  本文已影响10人  桥头堡2015

我们上一讲搭建好了开发环境、克隆了项目种子,手头实际上已经有了一个可以跑起来的服务器,这篇文章先来检阅下项目的结构和已有的内容,然后试着把让这个基本没有任何功能的服务器跑起来。

后端结构

我们的项目后端其实是一个Express应用。它的结构也是Express应用常见的结构之一。

.
├── config/
│   └── index.js
├── models/
├── public/
├── routes/
│   ├── api/
│   │  └── index.js
│   └── index.js
├── app.js
├── package.json
└── .gitignore

运行服务器

我们可以在后端的根目录下直接运行node app.js或者npm start来启动服务器。但是这样一来,在开发时,我们就需要反复地手动进行关闭与重启。为了避免这种烦琐,我们可以借助于nodemon这一工具。它可以监看项目目录下的源代码并且在有任何改动的时候,自动地重启服务器。

安装nodemon

我们建议尽量地避免全局安装npm包(以避免版本冲突),即使是nodemon这样的命令行工具:

npm install --save-dev nodemon

安装成功后,在后端项目的根目录下运行如下的命令来启动服务器:

./node_modules/.bin/nodemon app.js

如果有如下的错误,则请确认MongoDB有没有启动(见上一篇):

Error: connect ECONNREFUSED 127.0.0.1:27017

如果命令行最终显示类似下面的输出,则服务器启动成功:

[nodemon] starting `node app.js`
Listening on port 3000

利用npm脚本启动服务器

上述的利用nodemon直接启动服务器的方法太长了,我们可以新写一条npm脚本来简化开发环境下服务器的启动命令。打开package.json"scripts"对应的对象中添加dev命令:

"scripts": {
    "start": "node ./app.js",
    "dev": "nodemon ./app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

我们不去改动"start"命令,因为nodemon仅仅适用于开发环境。在生产环境中,我们还是需要npm start来启动服务器。

现在我们可以用下面的命令来代替上一小节所用的那一长行了:

npm run dev

命令行应该显示类似的成功信息。

[nodemon] starting `node app.js`
Listening on port 3000

使用这种方法的另一个好处就是,如果哪天我们决定用另一种工具来代替nodemon,我们只需要更改package.json中的dev命令的内容,而不需要重新学着输入新的命令。

到此服务器已经顺利地跑起来了,下一讲我们终于要开始写代码了。

上一篇 下一篇

猜你喜欢

热点阅读