🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

node-fashion

Package Overview
Dependencies
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-fashion

a node http server framework.

latest
npmnpm
Version
0.1.3
Version published
Weekly downloads
20
233.33%
Maintainers
1
Weekly downloads
 
Created
Source

基于Express快速构建WEB应用服务的框架

Node-Fashion NPM downloads

安装

npm install --save node-fashion

选项

  • baseUrl: [String] - 默认/api
  • port: [Number] - 端口, 默认12321
  • debugger: [Boolean] - 调试模式, 默认false
  • logger: [Object] - 日志输出, 默认console

文档

  • route
    • url: 请求地址, 如'/users', '/users/:id'
    • method: HTTP请求方法, [OPTIONS|GET|POST|PUT|DELETE|...]
    • description: 描述信息
    • handle: 请求处理函数
      {
        url: '/users',
        method: 'GET',
        description: '获取用户列表',
        handle: function (req, res) {
          ...
          res.respond(null, [
            {id: 1, name: 'qwe'},
            {id: 2, name: 'aaa'},
          ])
        }
      }
      
  • server.handle([Array | Object])
    • 注册route, 可以传递一个route对象或route对象的数组
  • server.use()
    • 该方法等同于Express的use方法
  • server.start()
    • 启动服务
  • server.interceptors([Callback Function])
    • 简易路由拦截器, 携带四个参数req, res, route, next,
    • 其中route包含url,baseUrl,method,description四个属性
      server.interceptors(function (req, res, route, next) {
        console.log(route)
        next()
      })
      
  • server.beforeResponse([Callback Function])
    • 服务器响应客户端前的自定义回调函数, 你可以在这里做一些额外的工作, 默认null
    • 必须调用'res.respond()'方法, 该回调函数才会生效
    • 该回调接受三个参数(err, route, done)
      • err: 服务器处理返回的错误信息
      • route: 所请求的路由信息, 额外包含(params, body, originalUrl)信息
      • done: 必须调用done()方法来结束该回调函数
  • res.respond([Error Object | String], [Error Code | Object])
  // 调用通用响应处理函数
  function (req, res) {
    // ...
    // error - errorCode默认是`500`
    res.respond(new Error('error message'))
    res.respond(new Error('error message'), 401)
    res.respond('error message', 401)
    // success
    res.respond(null, [{id: 1, name: 'qwe'}, {id: 2, name: 'aaa'}])
  }

使用

users.js

module.exports = [
  {
    url: '/users',
    method: 'get',
    handle: function (req, res) {
      res.respond(null, [
        {
          id: 123,
          name: 'sdx'
        },
        {
          id: 234,
          name: 'dss'
        }
      ])
    }
  },
  {
    url: '/users/:id',
    method: 'get',
    handle: function (req, res) {
      res.respond(null, 'get users by id.')
    }
  },
  {
    url: '/users',
    method: 'post',
    handle: function (req, res) {
      res.respond(null, 'add a user.')
    }
  }
]

api.js

module.exports = [
  require('./users'),
  {
    url: '/hello-world',
    method: 'get',
    handle: function (req, res) {
      res.send('hello world.')
    }
  }
]

index.js

var Server = require('node-fashion')

var server = new Server()

// add middleware
server.use(function (req, res, next) {
  console.log('============[配置中间件]=============')
  next()
})

// add basic api
server.use('/hello', function (req, res) {
  console.log('create api by [/hello].')
  res.send('test success.')
})

// 统一接口函数处理
server.handle(require('./api'))

server.start()

作者

Keywords

node

FAQs

Package last updated on 09 May 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts