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. idea安装、配置及基本使用

    下载 下载地址:https://www.jetbrains.com/idea/download/#section=windows Ultimate为旗舰版,功能全面,插件丰富,按年收费. Commun ...

  2. Stuts 文件上传

    Stuts 文件上传 三种上传方案         1.上传到tomcat服务器 上传图片的存放位置与tomcat服务器的耦合度太高         2.上传到指定文件目录,添加服务器与真实目录的映射 ...

  3. 【树形DP】【P3177】[HAOI2015] 树上染色

    Description 给定一棵 \(n\) 个点的带权树,要求选 \(k\) 个点染成黑色,剩下染成白色,最大化两两同色点之间的距离和. Limitations \(0 \leq k \leq n ...

  4. C程序获取命令行参数

    命令行参数 命令行界面中,可执行文件可以在键入命令的同一行中获取参数用于具体的执行命令.无论是Python.Java还是C等等,这些语言都能够获取命令行参数(Command-line argument ...

  5. 【BigData】Java基础_HashMap

    HashMap简介 HashMap是一种非常常见.方便和有用的集合,是一种键值对(K-V)形式的存储结构 常见的方法如下: put:将数据添加到集合中 get:获取集合中的元素 size:获取集合的长 ...

  6. Flask项目之login提交

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/11/2 20:53 # @Author : zoulixiang # @Si ...

  7. Spring Boot进阶系列二

    上一篇文章,主要分析了怎么建立一个Restful web service,系列二主要创建一个H5静态页面使用ajax请求数据,功能主要有添加一本书,请求所有书并且按照Id降序排列,以及查看,删除一本书 ...

  8. MySQL5.7调优参数

    1. 更改MySQL Data File位置 datadir=/data/mysqlsocket=/data/mysql/mysql.sock 2. 调整OS参数 * soft nproc 10240 ...

  9. SGE部署安装

    1.关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.service 2.安装SGE依赖包 # yum instal ...

  10. docker 学习操作记录 4

    记录3 [BEGIN] // :: Connecting to ... Connection established. To escape to local shell, press Ctrl+Alt ...