通过Express4构建Restful API服务器( 二 )


代码
具体看一下代码,首先是app.js,加了注释感觉还是很容易懂的:
// Base Setup// ====================================================================================================// call the package we needvar express = require('express');var app = express();var bodyParser = require('body-parser');// configure app to use middleware bodyParser()// let us get the data from a POSTapp.use(bodyParser.urlencoded({extend:true}));app.use(bodyParser.json());// set our portvar port = process.env.PORT || 8888;// base route for API// ====================================================================================================require('./routes/users.routes.js')(app);// start the api server// ====================================================================================================app.listen(port);console.log('server start on port ' + port);
这里app.js仅仅提供一个应用的入口,把需要的东西引入,在项目复杂之后可以考虑一些的方式进行相关的引入,总之app.js的责任应该很单一,很轻,没有任何逻辑和业务.
然后分别看一下route,,model中的代码,这个顺序就是代码的执行的顺序.
users..js:
'use strict';/*** Module dependencies.*/var usersController = require('../controllers/users.controller');module.exports = function(app) {// User Routesapp.route('/api/users').get(usersController.list);};
【通过Express4构建Restful API服务器】users..js:
'use strict';/*** Module dependencies.*/var userModel = require('../models/user.model.js');/*** List of users*/exports.list = function(req, res) {userModel.find(function(err, users) {if (err) {return res.status(400).send({message: 'something error'});} else {res.json(users);}});};
user.model.js:
'use strict';var users = [{name: 'Person1',age: 1},{name: 'Person1',age: 2},{name: 'Person3',age: 3},{name: 'Person4',age: 4},{name: 'Person5',age: 5}]module.exports = {find: function(callback){callback(null,users);}};
代码写到这里,已经可以跑起一个基本的服务器了.上面这套结构是一个简单的分层,当然我个人觉得可以应对大多数web应用.复杂的web应用需要做的就是在这个基础上添加各种中间件,比如身份校验,数据过滤等等.
地址: