我们上一讲搭建好了开发环境、克隆了项目种子,手头实际上已经有了一个可以跑起来的服务器,这篇文章先来检阅下项目的结构和已有的内容,然后试着把让这个基本没有任何功能的服务器跑起来。
后端结构
我们的项目后端其实是一个Express应用。它的结构也是Express应用常见的结构之一。
.
├── config/
│ └── index.js
├── models/
├── public/
├── routes/
│ ├── api/
│ │ └── index.js
│ └── index.js
├── app.js
├── package.json
└── .gitignore
-
config
文件夹里会存放应用的配置文件。 -
models
文件夹内将存放Mongoose模型文件。 -
public
文件夹本来是用来存放静态文件的,比如:HTML、CSS、图像等等。 不过我们的后端完全是用来支持API的,所以这个文件夹不会有任何内容。 -
routes
文件夹里的文件用于定义端点的路径和逻辑。 -
app.js
是后端应用的起点。它会把上述的其它部分结合到一起。 -
package.json
定义了后端应用的依赖包和npm可以执行的脚本命令。初次接触Node.js的朋友可以在这里查看关于这一文件的所有知识。
运行服务器
我们可以在后端的根目录下直接运行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
命令的内容,而不需要重新学着输入新的命令。
到此服务器已经顺利地跑起来了,下一讲我们终于要开始写代码了。
网友评论