Node.js和Express简单入门介绍(3)

#!/usr/bin/env node //表明是node可执行文件 /** * Module dependencies. */ //引入我们在app.js中导出的app模块 var app = require('../app'); //引入debuger模块,打印调试日志 var debug = require('debug')('hello:server'); //引入http模块 var http = require('http'); /** * Get port from environment and store in Express. */ var port = normalizePort(process.env.PORT || '3000'); app.set('port', port); //设置端口号 /** * Create HTTP server. */ //创建Http服务器 var server = http.createServer(app); /** * Listen on provided port, on all network interfaces. */ //监听指定的端口 server.listen(port); //监听error事件。 onError是发生错误的时候的回调函数 server.on('error', onError); //监听listening事件 server.on('listening', onListening); /** * Normalize a port into a number, string, or false. */ function normalizePort(val) { var port = parseInt(val, 10); if (isNaN(port)) { // named pipe return val; } if (port >= 0) { // port number return port; } return false; } /** * Event listener for HTTP server "error" event. */ function onError(error) { if (error.syscall !== 'listen') { throw error; } var bind = typeof port === 'string' ? 'Pipe ' + port : 'Port ' + port; // handle specific listen errors with friendly messages switch (error.code) { case 'EACCES': console.error(bind + ' requires elevated privileges'); process.exit(1); break; case 'EADDRINUSE': console.error(bind + ' is already in use'); process.exit(1); break; default: throw error; } } /** * Event listener for HTTP server "listening" event. */ function onListening() { var addr = server.address(); var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port; debug('Listening on ' + bind); }

4.4.3 routes/index.js

var express = require('express'); var router = express.Router(); /* GET home page. */ router.get('https://www.jb51.net/', function(req, res, next) { res.render('index', { title: '育知同创' }); }); module.exports = router; /* 生成一个路由实例用来捕获访问主页的GET请求, 导出这个路由并在app.js中通过app.use('https://www.jb51.net/', routes); 加载。这样,当访问主页时,就会调用res.render('index', { title: '育知同创' }); 渲染views/index.ejs模版并显示到浏览器中。 */

4.4.4 对路由写法的优化

​ 在前面的==app.js中==,每个模板都有添加一次路由比较麻烦,其实应该把添加路由的事情专门交给index.js来做。也就是可以把多个路由放在一个路由文件中。

//加载路由文件 var index = require('./routes/index'); //去掉 var users = require('./routes/users'); //去掉 // 路由控制器。 app.use('https://www.jb51.net/', index); // :3000 //去掉 app.use('/users', users); //http://localhost:3000/users //去掉

可以改成:

var routes = require('./routes/index'); routes(app);

==index.js==文件优化成: 这样管理起来就方便很多

module.exports = function (app) { //一个get请求的路由 :3000 app.get("https://www.jb51.net/", function (req, res) { res.render("index", {title:"育知同创abc"}) }); //又一个请求路由::3000/abc app.get("/abc", function (req, res) { res.render("index", {title:"育知同创" + req.path}) }); }

4.4.5 ejs模板

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwyspg.html