脚本宝典收集整理的这篇文章主要介绍了Node.js-模块化/包/express路由,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
设置测试
//在外界使用require倒入一个自定义模块的时候,得到的成员便是module.exports所指向的对象 const m = require('/Users/shuchenhao/Desktop/web前端学习/Node/自定义模块.js'); console.log(m);
module.exports.username = 'zs'; module.exports.sayhello = function () { console.log('hello'); } module.exports = { nickname: '小黑', sayhi() { console.log('hi'); } }
//导入moment名称 const moment = require('moment'); const dt = moment().format('yyyy-mm-dd hh:mm:ss'); console.log(dt);
{ "name": "ITh-tools", "version": "1.2.0", "main": "index.js", "description": "提供了格式化时间,HTMLEscape相关功能", "keywords": [ "ith", "dateFormat", "escape" ], "license": "ISC" }
在index.js中存放
//包的入口 const date = require('./dataformat.js') const escape = require('./htmlEscape.js') module.exports = { ...date, ...escape }
在dataformat.js用于存放时间格式化的模块
//时间格式化 function dataformat(datastr) { const dt = new Date(datastr); const y = padZero(dt.getFullYear()); const m = padZero(dt.getMonth() + 1); const d = padZero(dt.getDate()); const hh = padZero(dt.getHours()); const mm = padZero(dt.getMinutes()); const ss = padZero(dt.getSeconds()); return y + '-' + m + '-' + d + ' ' + hh + ':' + mm + ':' + ss; } //定义补0函数 function padZero(n) { return n > 9 ? n : '0' + n; } module.exports = { dataformat }
在htmlEscape中存放转义html字符的函数模块
//定义转义HTML字符的函数 function htmlEscape(htmlstr) { return htmlstr.replace(/<|>|"|&/g, (match) => { switch (match) { case '<': return '<'; case '>': return '>'; case '"': return '"'; case '&': return '&'; } }); }; //定义还原HTML字符串的函数 function htmlUnEscape(str) { return str.replace(/<|>|"|&/g, (match) => { switch (match) { case '<': return '<'; case '>': return '>'; case '"': return '"'; case '&': return '&'; } }); }; module.exports = { htmlEscape, htmlUnEscape }
在readme中存放介绍
##安装 ‘’‘ npm install ith-tools ''' ##导入 ‘’‘js const itheima=require('ith-tools') ''' ##格式化时间 ‘’‘js //调用dateformat格式化时间 const newTIME = itheima.dataformat(new Date()); console.log(newTIME); ''' ##转义html中的特殊字符 ‘’‘js //带转换的字符串 const htmlstr = '<h1 title="abc">这是目标标签<span>123 </span></h1>'; //调用htmlEscape方法进行转换 const str = itheima.htmlEscape(htmlstr); console.log(str); ‘’‘ ##还原html中的特殊字符串 ’‘’js //带还原的html字符串 const str2 = itheima.htmlUnEscape(str); console.log(str2); ‘’‘ 开源协议 ISC
然后发布过程如下
//导入 const express = require('express'); //创建web服务器 const app = express(); //监听get请求 app.get('/user', (req, res) => { res.send({ name: 'ss', age: 20 }); }); app.post('/user', (req, res) => { res.send('请求成功'); }) // 启动 app.listen(80, () => { console.log('express running at http://127.0.0.1'); })
app.get('/', (req, res) => { //通过req.query可以获取到客户端发送过来的查询参数 //默认情况下req.query是空对象 console.log(req.query); res.send(req.query); })
在query params中输入key和value,点击send,则可以在终端中获取URL中所带的参数
//这里的:id是个动态参数 app.get('/user/:id', (req, res) => { //动态匹配的URL参数,默认的也是一个空对象 console.log(req.params); res.send(req.params) })
在user/之后不管输入几,都是动态获取到Id的值
app.get('/user/:id/:name', (req, res) => { //动态匹配的URL参数,默认的也是一个空对象 console.log(req.params); res.send(req.params) })
const express = require('express'); const app = express(); //调用express.static()方法,快速对外提供静态资源 app.use(express.static('./anli')); app.listen(80, () => { console.log('express running at http://127.0.0.1'); })
app.use('/abc', express.static('./files'));
//路由模块 const express = require('express'); const router = express.Router(); //挂载具体路由 router.get('/user/list', (re1, res) => { res.send('Get user list'); }) router.posy('/user/add', (re1, res) => { res.send('Add new user'); }) //导出路由对象 module.exports = router;
再另一个js文件中注册路由
const express = require('express'); const app = express(); //导入路由模块 const router = require('./模块化路由.js'); //注册路由模块 app.use(router); app.listen(80, () => { console.log('http://127.0.0.1'); })
为路由库快添加前缀
app.use('/api', router);
以上是脚本宝典为你收集整理的Node.js-模块化/包/express路由全部内容,希望文章能够帮你解决Node.js-模块化/包/express路由所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。