对比一下 express 和 koa 的入口文件
express 初始化 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 var createError = require ("http-errors" );var express = require ("express" );var path = require ("path" );var cookieParser = require ("cookie-parser" );var logger = require ("morgan" );var indexRouter = require ("./routes/index" );var usersRouter = require ("./routes/users" );var app = express();app.set("views" , path.join(__dirname, "views" )); app.set("view engine" , "ejs" ); app.use(logger("dev" )); app.use(express.json()); app.use(express.urlencoded({ extended : false })); app.use(cookieParser()); app.use(express.methodOverride()); app.use(express.static(path.join(__dirname, "public" ))); app.use("/" , indexRouter); app.use(function (req, res, next ) { next(createError(404 )); }); app.use(function (err, req, res, next ) { res.locals.message = err.message; res.locals.error = req.app.get("env" ) === "development" ? err : {}; res.status(err.status || 500 ); res.render("error" ); }); module .exports = app;
Koa 初始化 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 const Koa = require ("koa" );const app = new Koa();const views = require ("koa-views" );const json = require ("koa-json" );const onerror = require ("koa-onerror" );const bodyparser = require ("koa-bodyparser" );const logger = require ("koa-logger" );const index = require ("./routes/index" );const users = require ("./routes/users" );const ENV = app.env;onerror(app); app.use( bodyparser({ enableTypes: ["json" , "form" , "text" ] }) ); app.use(json()); app.use(logger("dev" )); app.use(require ("koa-static" )(__dirname + "/public" )); app.use( views(__dirname + "/views" , { extension: "pug" }) ); app.use(async (ctx, next) => { const start = new Date (); await next(); const ms = new Date () - start; console .log(`${ctx.method} ${ctx.url} - ${ms} ms` ); }); app.use(index.routes(), index.allowedMethods()); app.use(user.routes(), index.allowedMethods()); app.use(blog.routes(), index.allowedMethods()); app.on("error" , (err, ctx) => { console .error("server error" , err, ctx); }); module .exports = app;
实例目录
原文地址:Node.js+Express+MongoDB 建站实例