1.数组的find方法还是不会用,改为filter

2.正规表达式还是理解的不好

//var myrouter = require("./myrouter");
//myrouter.getRouteValue('login')(1,2); pathname = '/login'
pathname = pathname.replace(/\//, ""); //替换掉前面的/
console.log('\/'); //输出/
console.log('/'); ////输出/
console.log(pathname); // 语法: 依据 两侧一个//作为模式界定 /pattern/attributes
// 解析: 两侧的/ /,为模式界定符; 中间的\/表示/,也就是/login中的/
var myrouter_action = [];
myrouter_action.push({ xpath: '/login', yvalue: function(req, res) {
res.write("我是登录方法");
console.log(101);
}}); myrouter_action.push({ xpath: '/register', yvalue: function(req, res) {
res.write("我是注册方法");
console.log(102);
}}); myrouter_action.push({ xpath: '/logout', yvalue: function(req, res) {
res.write("我是注销方法");
console.log(103);
}}); myrouter_action.push({ xpath: '/', yvalue: function(req, res) {
res.write("我是根目录方法");
console.log(100);
}}); /* 从arr中寻找标志为opath的函数 */
function getRouteValue(opath) {
var filterArray = myrouter_action.filter(function(v) {
return v.xpath === opath
})
if (filterArray.length) {
return filterArray[0].yvalue
}else{
console.log('查找路由表失败!', opath);
}
} module.exports={
getRouteValue
}
var http = require("http");
var url = require("url");
var myrouter = require("./myrouter"); http
.createServer(function(request, response) {
response.writeHead(200, { "Content-Type": "text/html; charset=utf-8" });
if (request.url !== "/favicon.ico") {
console.log("1:",request.url);
var pathname = url.parse(request.url).pathname; //得到请求的路径
console.log("2:",pathname);
//pathname = pathname.replace(/\//, ""); //替换掉前面的/
//console.log("2",pathname);
//myrouter.getRouteValue(pathname)(request, response);
myrouter.getRouteValue(pathname)(request, response); response.end("");
}
})
.listen(8000); console.log("Server running at http://127.0.0.1:8000/"); //console.log(myrouter.getRouteValue('login')(1,2));

node.js中使用路由方法的更多相关文章

  1. node.js中的路由(url)初步

    1.建立n4_root.js var http = require('http'); var url = require('url'); //这是node.js中自带的var router = req ...

  2. Node.js中针对中文的查找和替换无效的解决方法

    Node.js中针对中文的查找和替换无效的解决方法.   //tags的值: tag,测试,帖子 var pos1 = tags.indexOf("测"); //这里返回-1 ta ...

  3. Node.js中exports,module.exports以及require方法

    在Node.js中,使用module.exports.f = ...与使用exports.f = ...是一样的,此时exports就是module.exports的一种简写方式.但是,需要注意的是, ...

  4. node.js中实现同步操作的3种实现方法

    这篇文章主要介绍了node.js中实现同步操作的3种实现方法,本文用实例讲解一些需要同步操作的情况下,如何编程实现,需要的朋友可以参考下 众所周知,异步是得天独厚的特点和优势,但同时在程序中同步的需求 ...

  5. 记一次在node.js中使用crypto的createCipheriv方法进行加密时所遇到的坑

    Node.js的crypto模块提供了一组包括对OpenSSL的哈希.HMAC.加密.解密.签名,以及验证等一整套功能的封装.具体的使用方法可以参考这篇文章中的描述:node.js_crypto模块. ...

  6. node.js中的fs.rename()方法

    node.js 中的fs.rename()模块 var fs=require('fs');//node.js的核心模块 原生模块.修改文件名称,可更改文件的存放路径 方法说明 : 修改文件名称,可更改 ...

  7. node.js中的url.parse方法使用说明

    node.js中的url.parse方法使用说明:https://blog.csdn.net/swimming_in_it_/article/details/77439975 版权声明:本文为博主原创 ...

  8. 在node.js中,使用基于ORM架构的Sequelize,操作mysql数据库之增删改查

    Sequelize是一个基于promise的关系型数据库ORM框架,这个库完全采用JavaScript开发并且能够用在Node.JS环境中,易于使用,支持多SQL方言(dialect),.它当前支持M ...

  9. 如何在Node.js中合并两个复杂对象

    通常情况下,在Node.js中我们可以通过underscore的extend或者lodash的merge来合并两个对象,但是对于像下面这种复杂的对象,要如何来应对呢? 例如我有以下两个object: ...

随机推荐

  1. 【Linux】netstat命令

    https://www.cnblogs.com/ftl1012/p/netstat.html这个讲的不错 https://www.linuxprobe.com/netstat-common-metho ...

  2. Git挽回错误的push(commit)

    若你的(zhu)队友不小心把错误的代码提交到远程仓库,特别是包含了很多删除文件指令,不要尝试使用Git的API修改,或者删除Git仓库里的某次提交记录,风险十分大,正确的做法是备份你的本地源码,然后拉 ...

  3. LeetCode 528. Random Pick with Weight

    原题链接在这里:https://leetcode.com/problems/random-pick-with-weight/ 题目: Given an array w of positive inte ...

  4. 各类app的小结

    各类app小结: 一.原生app: 二.webapp:   无法调用底层设备的api 三.混合app的方法: 1.原生app 嵌入 2.flutter 3.react native 4.AppCan( ...

  5. windows下如何制作和应用数字签名证书 全流程

    目前我们在发布应用程序时,有时用户下载后会被360杀毒当做木马直接隔离.为应用程序可执行文件打上数字签名可以让360杀毒放宽检测规则.下文是讲述如何制作数字签名证书的过程. 需要准备的工具:makec ...

  6. 4.28(TG模拟赛)总结

    1.挖地雷 题目背景 NOIp1996提高组第三题 题目描述 在一个地图上有N个地窖(N≤20),每个地窖中埋有一定数量的地雷.同时,给出地窖之间的连接路径.当地窖及其连接的数据给出之后,某人可以从任 ...

  7. 【JZOJ6236】【20190628】启程的日子

    题目 给你一个\(n \times m\)的01矩阵 你需要用一些矩阵加减出这个矩阵 求最少的步数,并输出方案 需要满足构造出的01矩阵是一个四联通块 $ n ,  m \le 500 $ 题解 答案 ...

  8. vue package-lock.json

    npm5之后安装文件之后会多出一个package-lock.json的文件,它的作用是: 1. 安装之后锁定包的版本,手动更改package.json文件安装将不会更新包,想要更新只能使用 npm i ...

  9. mysql统计当前月和近30天每天的数据

    1,当前月 SELECT DATE_FORMAT(check_time,'%Y-%m-%d') as time, COUNT(*) FROM dw_rule WHERE check_state = 3 ...

  10. 免费https证书

    https://certbot.eff.org/lets-encrypt/ubuntuother-nginx https://ruby-china.org/topics/31942 https://l ...