node基础篇二:模块、路由、全局变量课堂(持续)
今天继续更新node基础篇,今天主要内容是模块、路由和全局变量。
模块这个概念,在很多语言中都有,现在模块开发已经成为了一种潮流,它能够帮助我们节省很多的时间,当然咱们的node自然也不能缺少,看下例子:
首先新建一个module.js
内容如下:
function Hello() { let name; this.sayname = (name)=>{ console.log(name); } }; function hello(obj){ this.sayhello = () =>{ if(obj.name != undefined)console.log(obj.name); } } module.exports = { Hello , hello};
//main.js var Hello = require('./module'); // var sayname =new Hello.Hello(); // sayname.sayname('zhangsan'); let sayhellow = new Hello.hello({name:'lisi'}); sayhellow.sayhello();
有的朋友可能问了。为什么跟系统不一样的呢,系统的我不用new 啊。确实,咱们自己的这样不好看. 那么朋友可以尝试下面这样的方法
function Hello() { let name; this.sayname = (name)=>{ console.log(name); } }; function hello(obj){ this.sayhello = () =>{ if(obj.name != undefined)console.log(obj.name); } } let func1 = new Hello(); let func2 = new hello({name:'lisi'}); module.exports ={ func1,func2 }
//main.js var Hello = require('./module'); // var sayname =new Hello.Hello(); Hello.func1.sayname('zhangsan'); // let sayhellow = new Hello.hello({name:'lisi'}); Hello.func2.sayhello();
const http = require('http'); const Url = require('url'); const fs = require('fs'); cs = (req,res)=>{ if(req.url != '/favicon.ico'){ res.setHeader('content-type','text/html;charset=UTF-8'); let parseurl = Url.parse(req.url).pathname; switch (parseurl) { case '/index': res.write('<h1>首页</h1>'); break; case '/shop': res.write('<h1>购物页</h1>'); break; case '/people': res.write('<h1>个人页</h1>'); break; case '/news': let data = fs.readFileSync('./index.html'); res.write(data); break; default: break; } res.end(); } } http.createServer(cs).listen(8000) console.log('server is start!');
大概就是这样。用switch就可以了。这个不多讲了。大家应该有js基础的都能理解吧。后面的express时候在讲
// console.time('1'); // for(let i= 0 ;i<10000000000;i++){ // } // console.timeEnd('1'); // console.log(__filename); 返回文件路径 //process on exit 程序退出时候调用 // process.on('exit',function(code){ // console.log('退出码为:', code); // }) // console.log("程序执行结束"); // process.argv.forEach(function (val, index, array) { // console.log(index + ': ' + val); // }); //获取程序执行路径 node // console.log(process.execPath); //平台信息 // console.log(process.platform); //返回文件夹路径 // console.log(process.cwd()); //获得gid和uid //gid 获取进程的群组标识 //uid 获取进程的用户标识 // console.log(process.getegid()); // console.log(process.getuid()); // getgroups()返回进程的群组 iD 数组 // console.(log(process.getgroups()); // console.log(process.config); // console.log(process.uptime()); // 输出流 不推荐了 可以用console替代 // process.stdout.write('1'); // let a = process.argv; // process.stdout.write(a.toString()); //argv 属性返回一个数组,由命令行执行脚本时的各个参数组成。它的第一个成员总是node,第二个成员是脚本文件名,其余成员是脚本文件的参数。 // console.log(process.argv) //返回当前设备的cpu架构 x64 ia32 arm // console.log(process.arch); //运行程序所在的平台系统 'darwin', 'freebsd', 'linux', 'sunos' 或 'win32' // console.log(process.platform);
官网上面的太多太杂乱 很不利于新手学习,而且很多官网都已经废弃了,在这我总结了一些常用的,大家可以参考下。 备注都写的很明白,希望大家用心学,
最后预祝大家工作顺利
node基础篇二:模块、路由、全局变量课堂(持续)的更多相关文章
- Node基础篇(模块和NPM)
核心模块 核心模块的意义 如果只是在服务器运行JavaScript代码,意义并不大,因为无法实现任何功能(读写文件,访问网络). Node 的用处在于它本身还提供的一系列功能模块,用于与操作系统互动. ...
- php基础篇-二维数组排序 array_multisort
原文:php基础篇-二维数组排序 array_multisort 对2维数组或者多维数组排序是常见的问题,在php中我们有个专门的多维数组排序函数,下面简单介绍下: array_multisort(a ...
- node基础(二)_模块以及处理乱码问题
一.前言 本次内容主要包括: 1.node.js中的模块系统 2.解决上篇中服务器响应的汉字乱码问题 二.知识 1.node中的模块 分为三种: 核心模块(node定义的如前面用到的fs,http ...
- JavaScript笔记基础篇(二)
基础篇主要是总结一些工作中遇到的技术问题是如何解决的,应为本人属于刚入行阶段技术并非大神如果笔记中有哪些错误,或者自己的一些想法希望大家多多交流互相学习. 1.ToFixed()函数 今天在做Birt ...
- docker+k8s基础篇二
Docker+K8s基础篇(二) docker的资源控制 A:docker的资源限制 Kubernetes的基础篇 A:DevOps的介绍 B:Kubernetes的架构概述 C:Kubernetes ...
- Qt入门之基础篇 ( 二 ) :Qt项目建立、编译、运行和发布过程解析
转载请注明出处:CN_Simo. 题解: 本篇内容主讲Qt应用从创建到发布的整个过程,旨在帮助读者能够快速走进Qt的世界. 本来计划是讲解Qt源码静态编译,如此的话读者可能并不能清楚地知道为何要静态编 ...
- node(基础三)_模块系统基础
一.前言 这篇文章主 ...
- NIO相关基础篇二
转载请注明原创出处,谢谢! 上篇NIO相关基础篇一,主要介绍了一些基本的概念以及缓冲区(Buffer)和通道(Channel),本篇继续NIO相关话题内容,主要就是文件锁.以及比较关键的Selecto ...
- Python基础篇(二)_基本数据类型
Python基础篇——基本数据类型 数字类型:整数类型.浮点数类型.复数类型 整数类型:4种进制表示形式:十进制.二进制.八进制.十六进制,默认采用十进制,其他进制需要增加引导符号 进制种类 引导符号 ...
随机推荐
- IPv6 VS IPv4,谈谈升级 IPv6 的必要性
11月26日,中办.国办印发了<推进互联网协议第六版(IPv6)规模部署行动计划>,提出国内要在 5~10 年的时间形成下一代互联网自主技术体系和产业生态,建成全球最大规模的 IPv6 商 ...
- 案例学习总结:原生JS实现表格排序
最近在学习js的表格排序,没想到看不起眼的表格排序实际上却暗含了众多JS知识点.在这里记录一下此次学习过程.希望对大家也有所帮助. 完整的表格排序涉及了下列这些知识点: call方法使用 sort方法 ...
- 永中DCS文档转换服务其它产品对比
一.利用DCOM配置直接操作Office文件 作用:读取文件内容,导出Html文件 优势:免费 劣势:1.服务器上必须安装Office软件 2.配置麻烦,正如微软所说,读取Office不是这么干的. ...
- Tosska SQL Tuning Expert 工具优化SQL语句
对于SQL开发人员和DBA来说,根据业务需求写出一条正确的SQL很容易.但是SQL的执行性能怎么样呢?能优化一下跑得更快吗?如果不是资深的DBA,估计很多人都没有信心. 幸运的是,自动化优化工具可以帮 ...
- 如何利用panel在一个窗口中实现诸多页面的显示
Book_register form11 = new Book_register();//new一个对象 form11.TopLevel = false;//去除子窗体的顶级窗体设置 form11.P ...
- FastDFS迁移步骤
1.在新的机器上安装FastDFS 2.将新的storage接到老的tracker机器上,用来同步数据(/usr/local/fastdfs/bin/fdfs_storaged) 数据同步完成后,需要 ...
- CDH集群搭建部署
1. 硬件准备 使用了五台机器,其中两台8c16g,三台4c8g.一台4c8g用于搭建cmServer和NFS服务端,另外4台作为cloudera-manager agent部署CDH集群. ...
- Python Django CMDB项目实战之-2创建APP、建模(models.py)、数据库同步、高级URL、前端页面展示数据库中数据
基于之前的项目代码来编写 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页index页文章页面 现在我们修改一个文章列表是从数据库中获取数据, 下面我们就需 ...
- 使用.Net Core+EF7 CodeFirst(2)
上一篇的话,说了下怎么使用EF7 实现 CodeFirst去生成数据库, 其实还有好多问题的,这次一点一点的解决吧,都挺简单,不过零零散散的,, 1.读取配置文件,获得链接字符串 2.使用数据库进行增 ...
- 【百度之星2014~初赛(第二轮)解题报告】JZP Set
声明 笔者近期意外的发现 笔者的个人站点http://tiankonguse.com/ 的非常多文章被其他站点转载,可是转载时未声明文章来源或參考自 http://tiankonguse.com/ 站 ...