node + express搭建简单的HTTP服务端

原创内容,请随意转载,但请标明出处。 -_-i


写在前面:文章发布时,express已经有版本更新,包括依赖的版本都已经是比较久以前。只是记录一个思路,使用前请先查阅官方文档。

1. 依赖

以下仅列出几个主要的依赖
"dependencies": {
  "express": "^4.17.1",  // 不多BB,官方文档很香
  
  "body-parser": "^1.19.0",  // 格式化request <已弃用,请使用其他套餐>
  
  "bluebird": "^3.7.2", // Promise扩展
  
  "winston": "^3.3.3",  // 日志套餐
  "express-winston": "^4.0.3",
  "log4js": "^6.3.0",
  
  "socket.io": "^2.3.0",
  
  "config-lite": "3.0.0"  // 使用配置文件
}

2. 主要代码

index.js

const express = require( 'express' );
const app = express();
const server = require( 'http' ).createServer( app );

const bodyParser = require( 'body-parser' );

const router = require( './routers/httpApi' );


// CROS配置
const allowCrossDomain = function ( req, res, next ) {
  res.header( 'Access-Control-Allow-Origin', '*' );
  res.header( 'Access-Control-Allow-Headers', 'content-type, token' );
  res.header( 'Access-Control-Allow-Methods', 'POST, GET, PUT' );
};

app.use( allowCrossDomain );


// 静态资源
app.use( express.static('webapp') );


// http router
app.use( '/', router );


server.listen( '8082', function() {
  console.log( 'Server is running on port 8082' );
})

./routers/httpApi

const app = require( 'express' );
const router = app.Router();

const Promise = require( 'bluebird' );


router.get( '/test', ( req, res ) => {
  res.send( {
    'key': 'value'
  } )
} );

router.post( '/test1', ( req, res ) => {
  // do something
  res.status( '200' );
  res.json( {
    'key': 'value'
  } )
} );

一个简单的http服务就可以启动了。

express完美支持browser路由和hash路由,基本上满足在前后端分离项目中Mock生产环境

3. 启动

命令行:

node index.js

或者,使用大杀器 pm2

npm i pm2 -g
pm2 start index.js

你可能感兴趣的:(node.js)