路由 Routes
了解了 Node.js ,学会了用 Node.js 处理 MongoDB 数据库,现在我们可以为应用开发一套 RESTful 接口。 就是在应用里提供一些地址,用户可以在这些地址,使用不同的 HTTP 的方法去做不同的事情。比如创建,读取,更新,删除应用里的资源。
路由
我们会用一 Express.js ,先去定义一些路由(Routes),就是一些地址,然后你可以用指定的方法去处理对这些路由地址的请求。
示例:
routes/eventRouter.js
router.route('/events') .post((request, response) => { const event = new Event({ title: request.body.title }) event.save() .then(document => response.send(document)) })
上面做的就是如果用 HTTP 的 POST 方法,请求 /events 地址的时候,就会把发送过来的东西保存到数据库里。events 表示活动。
控制器
把路由里的处理请求的逻辑提取出来,放到控制器里(Controllers),这样会更好管理一些。控制器只是一类东西的一个特别的名字,方便我们开发者之间沟通。
示例:
controllers/EventController.js
const store = (request, response) => { // console.log(request.body) const event = new Event({ title: request.body.title }) event.save() .then(document => response.send(document)) }
然后可以这样改进一下路由:
router.route('/events') .post(EventController.store)
我们把放在路由里的代码拿出来,放在了一个单独的控制器里,然后直接让路由使用控制器里的方法来处理用户请求。
REST
根据用户使用的不同的 HTTP 的方法,定义一些接口地址(路由),来处理用户对不同资源的请求。比如用 GET 方法请求 /events 的时候,应该返回活动资源列表。如果用 POST 方法请求 /events 的时候,应该把用户在表单或客户端那里发送过来的数据保存到数据库里。REST 就是定义了一套规则,规范,或者说 REST 是一种风格。你可以根据自己的实际情况去实施,并没有严格定义必须应该怎么做。
订阅宁皓网, 学习新课程《Node.js:REST 接口》,还有更多关于 Node.js 的课程。
Node.js