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

【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

    推荐阅读