练习1:模块之间的引用

a.js

// 引入b.js模块
var b = require("./b"); // 调用对象里的方法: 对象.属性名 对象.方法名()
b.add();
b.del();

b.js

function add() {
console.log("this is add");
}
function del() {
console.log("this is del");
}
// 导出成员
exports.add = add;
exports.del = del;

练习2:官方模块的使用,官方网址http://nodejs.cn/api/,获取系统信息,创建写入读取文件,http模块

/*
* @Author: 一届书生
* @Date: 2020-03-28 10:24:24
* @LastEditTime: 2020-04-01 10:24:14
*/ /**
* 练习1:获取系统信息
*/
console.log("\n练习1:获取系统信息");
// 引入官方模块
var os = require("os"); //主要用来获取操作系统信息
var path = require("path"); //操作文件路径
var url = require("url"); // 解析URL模块
// 获取系统内存 字节 kb M G
console.log("运存:", os.totalmem() / 1024 / 1024 / 1024);
// 获取文件后缀
console.log("后缀名:", path.extname('"E:/图片/必应壁纸/pirRAsmqR.jpg"'));
// 获取表单get提交参数
// console.log(url.parse("http://gaoying.cn?name=一届书生&age=23", true));
var urlObj = url.parse("http://gaoying.cn?name=一届书生&age=23", true);
console.log("url信息:", urlObj.query.name, urlObj.query.age); /**
* 练习2:创建文件、写入文件
*/
console.log("\n练习2:创建文件、写入文件");
// 1.引入官方的fs模块
var fs = require("fs");
// 2.调用成员writerFile创建文件 参数:路径,写入的内容,回调函数
fs.writeFile("./a.txt", "你好Nodejs", function(err) {
// err有数据则写入失败
// err没数据则写入成功
if (err) {
console.log(err);
return;
}
console.log("创建成功");
}); /**
* 练习3:读取文件
*/
// 1.引入官方的fs模块
var fs1 = require("fs");
// 2.调用fs模块的成员 readFile 来读取a.txt 参数:路径,回调函数(两个参数)
// fs1.readFile("./a.txt",function(err, data) { //没有指定编码
fs1.readFile("./a.txt", "utf8", function(err, data) {
// err为真则读取失败,例如没有此文件
if (err) {
console.log(err);
return;
}
console.log("\n练习3:读取文件");
console.log(data);
}); /**
* 练习4:http模块
*/
console.log("\n 练习4:http模块");
// 1.引入http模块
var http = require("http");
// 2.创建web服务器对象
var sever = http.createServer();
// 3.监听请求->响应内容
sever.on("request", function(request, response) {
console.log("接收到了用户请求");
// response是一个对象,end方法用来响应用户数据 ctrl+c结束运行,需要重启服务
response.end("hello,NodeJs");
});
// 4.启动服务
sever.listen(8080, function() {
console.log("服务器启动成功!通过:http://localhost:8080");
});

练习3:HTTP模块响应不同的数据

/*
* @Qusetion:
* @Author: 一届书生
* @Date: 2020-04-01 10:24:07
* @LastEditTime: 2020-04-01 13:28:53
*/ /**
* 练习5:http模块-响应不同的数据
*/
console.log("\n 练习5:http模块");
// 1.引入http模块
var http = require("http");
var fs = require("fs");
var msgs = [
{ name: "张三", age: "1", content: "金" },
{ name: "李四", age: "2", content: "银" },
{ name: "王五", age: "3", content: "铜" }
];
// 2.创建web服务器对象
var sever = http.createServer();
// 3.监听请求->响应内容
sever.on("request", function(request, response) {
// 需求:登录页响应this is login 首页响应login.html
console.log(request.url); //获取用户请求路径
if (request.url == "/") {
// 首页
response.end("this is index");
} else if (request.url == "/login") {
// 登录页 (fs模块)
fs.readFile("./login.html", "utf8", function(err, data) {
if (err) {
console.log(err);
return;
} else {
// 防止中文乱码,设置请求头
response.setHeader("content-type", "text/html;charset=utf-8");
response.end(data);
}
});
} else if (request.url == "/live") {
// 动态列表
fs.readFile("./live.html", "utf8", function(err, data) {
if (err) {
console.log(err);
return;
} else {
// 需求,里边的列表动态化
// 1.将上边的变量数据 组装html
var html = "";
msgs.forEach(function(item) {
// console.log(item);
html += `${item.name} ${item.age} ${item.content} <br /> `;
});
// console.log(html);
// 2.将拼接好的数据 替换 原先静态页面的数据
var html = data.replace("待替换数据", html);
// 防止中文乱码,设置请求头
response.setHeader("content-type", "text/html;charset=utf-8");
// 3.响应替换后的数据
response.end(html);
}
});
} else {
// 防止中文乱码,设置请求头
response.setHeader("content-type", "text/html;charset=utf-8");
response.end("<a href='https://www.cnblogs.com/52dxer/'>一届书生 </a>");
}
});
// 4.启动服务
sever.listen(8080, function() {
console.log("服务器启动成功!通过:http://localhost:8080");
});

  

NodeJs初探索的更多相关文章

  1. Mac下nodeJS初体验

    Mac下nodeJS初体验 这两天博主出门在外,抽空体验一下大名鼎鼎的node 安装 brew install node 安装测试 $ node -v v8.4.0 运行本地脚本 用文本编辑器编辑一段 ...

  2. C++初探索

    C++初探索 前言 C++ 和 C 的区别主要在8个方面: 输入和输出 引用 inline函数 函数默认值 函数重载 模板函数 new 和 delete namespace 我仅对印象不深的地方做了总 ...

  3. Nodejs初阶之express

    PS: 2014/09/24 更新<Express 4.X 启航指南>,欢迎阅读和评论:)   老规矩,开头部分都是些自娱自乐的随想,想到哪写到哪... 到今天俺已经在俺厂工作俩年零几天了 ...

  4. nodejs 初入

    nodejs 模块路径 1.内置模块 如果传递给require函数的是NodeJS内置模块名称,不做路径解析,直接返回内部模块的导出对象,例:require('http'). 2. nodejs  支 ...

  5. nodejs初窥

    1. node.js不是js应用,而是js运行平台.Node.js采用C++编写,是一个js的运行环境. 2. node.js采用事件驱动.异步编程,为网络服务而设计.Node.js的网络应用模块包括 ...

  6. nodejs初写心得

    nodejs安装后如何查看和安装其他工具 网上nodejs的文章已经很多,这里只是写下自己的小小心得,如果能帮到别人当然更好. 安装nodejs这里就不叙述了,直接上nodejs官网下载就好了,初学者 ...

  7. nodejs初体验

    安装好nodejs之后 在命令行中直接运行:node -v //若安装成功则显示版本号 var http = require('http'); http.createServer(function ( ...

  8. NodeJS初介

    之前很多环境搭建中都使用到了Nodejs,所以这边对Nodejs做一个简单总结. 1.什么是Nodejs Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由R ...

  9. nodejs初印象

    初学Nodejs,特意在此记录学习过程,算是对这段时间的一个summary吧,相互勉励,共同进步嘛,Now Begin: 1.什么是nodejs nodejs 是一种基于事件驱动.非阻塞I/O模型,用 ...

  10. NodeJs初相识

    一.nodeJs简介 1.Node 是一个服务器端 JavaScript 解释器. 2.Node 的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个物理机的连接代码.处理高并 ...

随机推荐

  1. Toyota Programming Contest 2024#2(AtCoder Beginner Contest 341)D - Only one of two(数论、二分)

    目录 链接 题面 题意 题解 代码 总结 链接 D - Only one of two 题面 题意 求第\(k\)个只能被\(N\)或\(M\)整除的数 题解 \([1,x]\)中的能被\(n\)整除 ...

  2. 复习精简版快速学vue3

    vue2中.如果给一个之前没有定义的属性赋值,会得不到时实更新: this.obj.b=2 //由于这个属性之前没有定义,是不支持动态响应,只能用this.$(this.obj,'b',2)也就是说v ...

  3. Zabbix与乐维监控对比分析(四)——告警管理篇

    在前面发布的Zabbix与乐维监控对比分析文章中,我们评析了二者在架构与性能.Agent管理.自动发现.权限管理.对象管理等方面的差异.接下来让我们一起看看二者在告警管理方面的差异. 告警管理是所有I ...

  4. Dendron vscode笔记插件 F12 可自动跳转 页面 很实用

    Dendron vscode笔记插件 F12 可自动跳转 页面 很实用 Dendron 技巧汇总 新建工作区 新建一个 工作区 建立一个空目录 然后 ctrl + shift P 输入 init 就可 ...

  5. DatePicker 日期选择器 split-panels 数组的时候,清空这个费劲啊,最后走的后门

    这里的核心问题就是验证的时候value值不对,总是初始化的值,不论怎么设置,开始觉得是数组指针的问题,最后也不行,null也不行,组件的props都已经是null了,验证就是这么神奇,最后把this放 ...

  6. windows下删除文件时提示“操作无法完成 因为文件已在。。。”解决方案

    解决方案:利用"资源监视器",如上图: 具体步骤: win+r,输入perfmon打开资源监视器 或者 右键--Windows 7任务栏--启动任务管理器--性能--资源监视器-- ...

  7. FFmpeg 基本操作摘要(一) (转流、解码、编码)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  8. 为什么延迟删除可以保证MYSQL 与redis的一致性?

    看过很多保持MYSQL 与redis保持一致性的文章都提到了延迟删除,其实脱离任何业务场景的设计都是不切实际的,所以我会本着一个通用的读写场景去分析为什么延迟删除大概率可以保证MYSQL与redis的 ...

  9. 说说你对vue的mixin的理解,有什么应用场景?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.mixin是什么 Mixin是面向对象程序设计语言中的类,提供了方法的实现.其他类可以访问mixin类的方法而不必成为其子类 Mixi ...

  10. vue初学核心基础

    一.初识vue 1.vue的使用 导入vue之后创建vue模块,el属性表示控制区域的id名称,data表示该区域内的数据 在vue中我们都是用表中模板的标准语法来传递数据 <head> ...