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. echarts - 折线图 - 每秒刷新数据并显示

    function randomData() { now = new Date(+now + oneDay); value = value + Math.random() * 21 - 10; var ...

  2. CentOS7.5下实现MySQL5.7主从同步

    这里使用两台Linux主机(一台充当MySQL主服务器,另一台充当MySQL从服务器),MySQL用yum安装,版本均为5.7,下表是它们所使用的操作系统以及IP地址. 两台Linux主机所使用的操作 ...

  3. 06-C#笔记-常量

    1. 进制 前缀:0x 或 0X 表示十六进制,0 表示八进制,没有前缀则表示十进制. 后缀:可以是 U 或 L 的组合,其中,U 和 L 分别表示 unsigned 和 long.后缀可以是大写或者 ...

  4. Anaconda3(4)安装pytorch

    安装链接 https://pytorch.org/ 0在anaconda3安装python3.6环境  https://blog.csdn.net/u012005313/article/details ...

  5. 知识点5 C++保存txt文件

    简单示例 #include <windows.h> #include <fstream> #include <iostream> #include <stri ...

  6. Java实现递归阶乘

    public class Factorial{ public static void main(String[] args){ for (int i = -5; i <= 5; i++) { S ...

  7. 洛谷p1776宝物筛选

    宝物筛选 多重背包问题 物品数目已知 可以枚举每个物品 当做01背包来做 不过会超时 此时需要二进制拆分来优化 分解成新的物品 再跑一遍01背包即可 //二进制拆分+01背包 //设f[j]表示前i件 ...

  8. 洛谷 P1816 忠诚 题解

    P1816 忠诚 题目描述 老管家是一个聪明能干的人.他为财主工作了整整10年,财主为了让自已账目更加清楚.要求管家每天记k次账,由于管家聪明能干,因而管家总是让财主十分满意.但是由于一些人的挑拨,财 ...

  9. Java集合详解6:这次,从头到尾带你解读Java中的红黑树

    <Java集合详解系列>是我在完成夯实Java基础篇的系列博客后准备开始写的新系列. 这些文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查 ...

  10. elasticsearch 基于 rollover 管理按时间递增的索引 合并 删除

    https://www.elastic.co/cn/blog/managing-time-based-indices-efficiently Anybody who uses Elasticsearc ...