node routes.js
#### Node.js路由处理代码
完整的代码, 可以复制引用
//导入依赖模块 let path = require('path'); let url = require('url'); let fs = require('fs'); let ejs = require('ejs'); let tools = require('./tools'); // 路由处理 let routes = { 'static': (request, response) => { // 解析URL,如果是'/'默认加载index.html,否则加载相应的文件 let queryUrl = url.parse(request.url).pathname === '/' ? '/index.html' : url.parse(request.url).pathname; // 获取文件后缀名 let extname = path.extname(queryUrl); // 排除favicon.ico请求 if(queryUrl !== '/favicon.ico') { // 根据文件后缀名确定加载的文件路径 let localUrl = (extname === '.html') ? (queryUrl === '/index.html' ? '/index.html' : '/pages' + queryUrl) : '.' + queryUrl; try { let data = fs.readFileSync(localUrl); if (data) { // 设置响应头并返回文件内容 response.writeHead(200, {'Content-Type': `${tools['contentType'][extname]};charset="utf-8"`}); response.end(data); } } catch (e) { // 文件读取错误处理可以在这里增加 } } }, 'route': { 'index': (request, response, data) => { // 使用ejs模板引擎渲染index.html页面 ejs.renderFile('./index.html', {'list': data, 'msg': '我是ejs'}, (err, data) => { if(err) { // 错误处理可以在这里增加 } else { response.writeHead(200, {'Content-Type': 'text/html;charset="utf-8"'}); response.end(data); } }); }, 'text': (request, response, data) => { // 其他路由处理可以在这里增加 }, 'error': (request, response, data) => { response.writeHead(200, {'Content-Type': 'text/html;charset="utf-8"'}); response.end('404 找不到地址'); }, } } module.exports = routes;