Node.Js学习就按照这本书的流程来。

在第7章结束与第10章结束时分别自己出一个小项目练练手。Node.Js的入门学习计划是这样。

目录:

QQ:1045642972 欢迎来索书以及讨论Node.Js。


Node.Js Demo

Node.Js官网提供了一个最基本的Demo Code:

var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

运行之后,浏览器中输入URL,结果:

require('http'); 就是从Node.Js提供的http 这个module中获取导出的对象,以进行之后的创建侦听端口的操作。


Module

Module System的4个要点:

  • 每个Js文件都映射一个Module。
  • 在每个Js文件中,都可以通过module这个变量,来直接操作到Module。
  • 导出模块借助于module.exports这个变量
  • 导入模块借助于require这个全局函数。

直接上代码来说明

文件结构:PS:由于Js没有main(),Node.Js社区中约定将主流程写在app.js中。

utility模块如下:

var title = "Hello Node";

module.exports = {
SetTitle : function(titleName){
title = titleName;
},
Output : function () {
console.log(title);
}
}

app.js对于该模块的测试代码如下:

var module = require("./utility");

module.SetTitle("Hello CNBLOG");
module.Output(); console.log(module.title);

结果:

Node.Js的Module是非常安全的,每个module只能拿到exports变量出来的东西。


Path Module

提供与文件路径有关的功能,并且可以适应操作系统的环境(即Windows的\与Unix的/)。

DEMO(测试环境为Windows):

var path = require("path");

console.log(path.normalize("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
//Output:C:\Users\Guan\WebstormProjects\NodeStudy01\app.js console.log(path.join("C:/Users/Guan/WebstormProjects", "NodeStudy01", "app.js"));
//Output:C:\Users\Guan\WebstormProjects\NodeStudy01\app.js console.log(path.dirname("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
//Output:C:/Users/Guan/WebstormProjects/NodeStudy01 console.log(path.basename("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
//Output:app.js console.log(path.extname("C:/Users/Guan/WebstormProjects/NodeStudy01/app.js"));
//Output:.js

fs Module

提供了异步与同步两种模式读写文件的功能。

DEMO:

var fs = require('fs');

fs.writeFileSync('testA.txt', "Hello Node");
console.log(fs.readFileSync('testA.txt').toString()); fs.writeFile('testB.txt', "Hello Node", function () {
console.log(fs.readFileSync('testB.txt').toString());
});

os Module

该模块提供了获取当前系统OS有关的功能,如:获取CPU核数,内存余量等。

DEMO:

console.log('Total Memory', os.totalmem(), 'Bytes');
console.log('Available Memory', os.freemem() , 'Bytes');
console.log('This machine has', os.cpus().length, 'CPUs');

当然,Module还有很多,具体参考Node.Js官网的API DOC。

Node.Js的Module System 以及一些常用 Module的更多相关文章

  1. node.js整理 02文件操作-常用API

    NodeJS不仅能做网络编程,而且能够操作文件. 拷贝 小文件拷贝 var fs = require('fs'); function copy(src, dst) { fs.writeFileSync ...

  2. Node.js学习笔记 01 搭建静态服务器

    希望这篇文章能解决你这样一个问题:“我现在已经了解了一些Node.Js基本概念了,怎么搭一台静态服务器呢?” 请参考一下博主的前两篇文章: 完全面向于初学者的Node.js指南 Node.Js的Mod ...

  3. 完全面向于初学者的Node.js指南

    新的上班时间是周二至周六,工作之余当然要坚持学习啦. 希望这篇文章能解决你这样一个问题:“我现在已经下载好Node.Js了,该做些什么呢?” 原文URL:http://blog.modulus.io/ ...

  4. Node.js NPM Tutorial

    Node.js NPM Tutorial – How to Get Started with NPM? NPM is the core of any application that is devel ...

  5. A chatroom for all! Part 1 - Introduction to Node.js(转发)

    项目组用到了 Node.js,发现下面这篇文章不错.转发一下.原文地址:<原文>. ------------------------------------------- A chatro ...

  6. Node.js 全局对象介绍

    全局对象 这些对象在所有模块里都可用.有些对象不是在全局作用域而是在模块作用域里,这些情况下面文档都会标注出来. global {Object} 全局命名空间对象. 浏览器里,全局作用域就是顶级域.如 ...

  7. [Node.js] 05 - Modules and Function

    一个 Node.js 文件就是一个模块,这个文件可能是JavaScript 代码.JSON 或者编译过的C/C++ 扩展. 模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的. No ...

  8. Practical Node.js摘录(2018版)第1,2章。

    大神的node书,免费 视频:https://node.university/courses/short-lectures/lectures/3949510 另一本书:全栈JavaScript,学习b ...

  9. 2015年最佳的15个 Node.js 开发工具

    Node.js 越来月流行,这个基于 Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些工具 ...

随机推荐

  1. 小玩Spring Boot

    Spring Boot是Spring Mvc的升级版 号称是替代者 也是微服务的微框架基础 有3启动方式 用IntelJ IDEA 生成spring boot工程 1.有个入口类 可以直接run as ...

  2. JS点击查看更多内容 控制段落文字展开折叠

    JavaScript+jQuery实现的文字展开折叠效果,点击文字后文字内容会完整的显示出来,控制段落来显示文字,不需要的时候,可以再次点击后将内容折叠起来,也就是隐藏了一部分内容.点击查看更多的功能 ...

  3. eclipse安装lombok和常用注解使用

    1.下载lombok.jar lombok 的官方网址:http://projectlombok.org/   2.运行lombok.jar: java -jar  D:\eclipse-luna\l ...

  4. ssm使用velocity模板语言

    1.在pom.xml里添加velocity模板语言支持的依赖 <!-- velocity模板语言支持包 --> <dependency> <groupId>org. ...

  5. c#-关于自动属性的思考

    参考:c#-关于自动属性的思考 我的理解:自动属性跟 公有字段 一模一样,编程习惯而已.目前是这么认为的. 自动属性:public string Name{  get;  set } 公有字段:pub ...

  6. CodeForces-607B:Zuma (基础区间DP)

    Genos recently installed the game Zuma on his phone. In Zuma there exists a line of n gemstones, the ...

  7. SpringMVC上传多文件

    springMVC实现 多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传.这两种方式对于实 现多文件上传效率上却有着很大的 ...

  8. jsch文件下载功能

    转载:http://www.cnblogs.com/longyg/archive/2012/06/25/2561332.html 上一篇讲述了使用JSch实现文件上传的功能,这一篇主要讲述一下JSch ...

  9. MongoDB复制集安全认证

    之前我有一篇博客写的是“node.js通过权限验证连接MongoDB”,这篇博客上提到如何在启动文件中通过配置auth参数来开启权限认证,但这种认证方式只适合单机节点,当我们使用复制集时应该怎么开启权 ...

  10. 关于HibernateDaoSupport中的getHibernateTemplate().execute及executeFind方法

    转自:https://blog.csdn.net/angus_17/article/details/8501668 1. 这两个方法都是为了Spring在接管Hibernate之后,可以对Hibern ...