项目文件 > bin > public > routes > views app.js package.json
{
"name": "01-web-server-ssr", "version": "0.0.0", "private": true, "scripts": { "start": "nodemon ./bin/www" }, "dependencies": { "cookie-parser": "~1.4.4", "debug": "~2.6.9", "ejs": "~2.6.1", "express": "~4.16.1", "http-errors": "~1.6.3", "morgan": "~1.9.1" } }
var port = normalizePort(process.env.PORT || '3000'); app.set('port', port); var server = http.createServer(app);
它是经过http来作了一个服务器,默认端口是:3000node
这个文件中引入了一个app文件,这个文件是将createServer中的回调函数放到了外面,以模块化的形式使用的,这个文件咱们叫它: '入口文件'web
- 1.应用级中间件 app.use(logger('dev')); // 日志文件记录 app.use(express.json()); // json数据格式化 app.use(express.urlencoded({ extended: false })); // 引入文件后缀名省略 app.use(cookieParser()); // cookie处理 app.use(express.static(path.join(__dirname, 'public'))); // 指定项目静态资源文件夹为public - 2.路由中间件 // http://localhost:3000/users app.use('/', indexRouter); app.use('/users', usersRouter); app.use('/',homeRouter) - 3.错误处理中间件 // catch 404 and forward to error handler app.use(function(req, res, next) { next(createError(404)); }); // error handler app.use(function(err, req, res, next) { // set locals, only providing error in development res.locals.message = err.message; res.locals.error = req.app.get('env') === 'development' ? err : {}; // render the error page res.status(err.status || 500); res.render('error'); });