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种进制表示形式:十进制.二进制.八进制.十六进制,默认采用十进制,其他进制需要增加引导符号 进制种类 引导符号 ...
随机推荐
- jquery 三级关联选择效果
在网页制作中,三级关联选择经常遇到,于是归纳了一个进行参考 代码如下: <!DOCTYPE html> <html lang="en"> <head& ...
- POJ 1151 Wormholes spfa+反向建边+负环判断+链式前向星
Wormholes Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 49962 Accepted: 18421 Descr ...
- Scala中的override
Scala中的override override是覆盖的意思,在很多语言中都有,在scala中,override是非常常见的,在类继承方面,它和java不一样,不是可写可不写的了,而是必须写的.如果不 ...
- 【epubcfi函数generateRangeFromCfi和generateCfiFromRange】两者的区别和适用性,以及另一种实现
epubcfi是描述epub规范电子书中文本位置的一种描述符,它是形如" epubcfi(/6/4[Section0017.xhtml]!4/42/178/1:0,4/42/198/1:1) ...
- .NET版支付宝商户会员卡接入
最近公司计划对接支付宝会员卡功能,而任务恰巧由领导安排给我这边,小弟之前也未做过支付宝接口,研究了三天,终于将支付宝会员卡API接口大体上调通了,现将其整理下,以供参考. 蚂蚁金服开发平台-商户会员卡 ...
- 大数据学习(1)Hadoop安装
集群架构 Hadoop的安装其实就是HDFS和YARN集群的配置,从下面的架构图可以看出,HDFS的每一个DataNode都需要配置NameNode的位置.同理YARN中的每一个NodeManager ...
- 有关.NET链接Oracle数据库,使用连接池pooling=true时问题
.net链接oracle数据库时,当链接字符串中pooling=true时,视图结构变更时程序报错问题,还请高手指教 现象: 链接字符串: 注意:这里pooling=true: 测试视图: 执行的SQ ...
- 二叉树的递归遍历 Tree UVa548
题意:给一棵点带权的二叉树的中序和后序遍历,找一个叶子使得他到根的路径上的权值的和最小,如果多解,那该叶子本身的权值应该最小 解题思路:1.用getline()输入整行字符,然后用stringstre ...
- Linux下一次删除百万文件
Linux下一次删除百万文件 线上环境遇到的一个问题,文件数量过多,执行rm命令报错 # rm -f ./* -bash: /bin/rm: Argument list too long 根据报错检查 ...
- 改动hosts权限
在屏蔽网页.訪问一些特定局域网的时候,都可能须要改动Hosts文件. 只是在改动Hosts文件后.会遇到无法保存的情况,提示"您没有权限在此位置中保存文件,请与管理员联系以获取对应权限&qu ...