Node.js是一个基于Chrome V8引擎的JavaScript运行。

js的运行环境

运行js有两种:

.js文件方式

交互(REPL):

  node  回车进入交互模式

  .exit 退出交互模式

模块化: 作用  复用  解决命名冲突

module

一个js文件就是一个模块   模块之间互不影响

global是nodejs里面的全局对象

例如:global.a=a;

引入模块     var a = require(模块的路径)

导出模块    module.exports =a;

导出多个变量的时候可以写成对象的模式

exports 默认指向module.exports

如果exports指向了新的对象,那么就没有了导出的效果

浅拷贝

var obj ={ ...obj}  //浅拷贝(es6)

var obj2 = Object.assign({},obj); //浅拷贝(es5)

浅拷贝解决了对象引用时候互相影响的问题,采用浅拷贝的时候就不再会影响原来的对象。

补充:

node.js采用commonjs规范

.json也是一个单独的模块

\t  相当于四个空格

\n换行

引入模块如果省略扩展名 是按照 .js .json .node 的顺序引入的

npm  看文档说明

npm init -y 会产生package.json包管理文件 里面的script标签对象 , npm run +key值运行,可以用来自定义命令。

npm i 或者 yarn命令会根据package.json重新下载node_modules文件

模块的分类:

1.自定义模块

2.内置模块:(类比手机自带的软件不用下载)

①http、https(面试题:http和https的区别)

//引入内置的http模块
const http = require("http");
//引入第三方模块 第三方下载 npm install 卸载 uninstall / yarn add 卸载remove
const chalk = require("chalk");
//创建一个http服务器
var ser = http.createServer((req,res)=>{
//响应头里写入编码问题 响应的writeHead的方法响应头
res.writeHead(200,{'Content-type':'text/html;charset=utf-8'})
res.end("hello,dd冬冬");
//end方法返回一个消息
})
//这个服务器监听到3000端口
console.log(chalk)
ser.listen(3000,()=>{
console.log(chalk.green("listen 3000...."))
})

②fs文件操作模块(内置模块)

同步sync 读写文件 :fs.readFileSync("文件的路径","utf-8")    fs.writeFileSync("文件的路径","内容","utf-8")  fs.appendFileSync("文件的路径","追加的内容",utf-8"

//同步读文件
// var str =fs.readFileSync("./a.txt","utf-8");
// console.log(str); // 异步读取文件
// fs.readFile("a.txt","utf-8",(err,data)=>{
// if(!err){
// console.log(data)
// }
// }) // 流的方法读取文件
var rs =fs.createReadStream("./a.txt");
var str ="";
rs.on("data",(thunk)=>{//读取一块内容的时候,就发送data事件
str += thunk;
})
rs.on("end",()=>{//当读取完所有数据的时候,就发生end事件
console.log(str);
})

异步async读写文件:fs.readFile("文件的路径","utf-8",(err,data)=>{if(!err){ data就是读出的内容}})    fs.writeFile("文件的路径","写入的内容" ,"utf-8",callback)  fs.appendFile  ("文件的路径","写入的内容" ,"utf-8",callback)  

const fs =require("fs");
//同步写入文件
// fs.writeFileSync("./a.txt","冬冬","utf-8"); // 异步写入文件
// fs.writeFile("./a.txt","篮球","utf-8",(err)=>{
// if (!err) {
// console.log("write ok");
// }
// }) //流的方式写入文件
var ws =fs.createWriteStream("./a.txt");
ws.write("你好呀","utf-8");
const fs =require("fs");
// 同步追加写入
// fs.appendFileSync("./a.txt","啊哈哈","utf-8"); // 异步追加写入
fs.appendFile("./a.txt","章冬冬","utf-8",(err)=>{
if(!err){
console.log("write ok");
}
});

流stream:

fs.createReadStream: 

fs.createReadStream

fs.on("data",(thunk)=>{}) fs.on("end",()=>{})

 fs.createWriteStream:

fs.createWriteStream
ws.write("文件的内容","utf-8")

拷贝(copy)pipe 管道 

rs.pipe(ws)  文件的拷贝

const fs =require("fs");
var rs =fs.createReadStream("./a.txt");
var ws =fs.createWriteStream("./acopy.txt")
rs.pipe(ws);//rs通过管道传输给ws

fs.renameSync   重命名

3.第三方模块:(类比手机里要下载后再使用的软件)

nodejs基础一的更多相关文章

  1. [转]Nodejs基础中间件Connect

    Nodejs基础中间件Connect 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的J ...

  2. Nodejs基础中间件

    Nodejs基础中间件Connect   http://www.tuicool.com/articles/emeuie 关于作者 张丹(Conan), 程序员Java,R,PHP,Javascript ...

  3. Nodejs第一天-{Nodejs基础 深刻理解浏览器 环境变量 基础语法}

    Nodejs第一天 1.什么是Nodejs ​ Nodejs是一个可以运行(解析)ECMAScript的环境; ​ ECMAScript是规定了一些列的语法 ,这些语法想要解析的执行就需要放在某个环境 ...

  4. nodejs 基础篇整合

    nodeJs 基础篇整合 最近有朋友也想学习nodeJs相关方面的知识,如果你是后端想接近前端,node作为一门跑在服务端的JS语言从这里入门再好不过了.如果你正好喜欢前端,想走的更高,走的更远.no ...

  5. 前端知识体系-NodeJS相关】NodeJS基础知识全面总结

    NodeJS基础知识 1. Node的全局对象和全局变量 1.1 全局对象:所有模块都可以调用的 global:表示Node所在的全局环境,类似于浏览器的window对象. process:该对象表示 ...

  6. Nodejs基础中间件Connect

    http://www.tuicool.com/articles/emeuie 关于作者 张丹(Conan), 程序员Java,R,PHP,Javascript weibo:@Conan_Z blog: ...

  7. 02 nodejs命令参数(NodeJS基础入门)

    声明:本文章可供有一定js基础的朋友参考nodejs入门,本文未讲解nodejs的安装,如有需要的同学可以加QQ3382260752找我,进行交流学习. 建议使用开发软件:webstorm或hbuil ...

  8. nodejs基础教程回顾01

    最近在复习nodejs,因为框架太多隔一段时间不用就会忘了,所以没办法必须时常拿出来练练,就像家里有好几辆车,要时不常的轮流开一圈.我就从最基础的开始写,怎么下载安装就不说了,首先是nodejs的三类 ...

  9. NodeJS基础总结(一)

    NodeJS官网网址:https://nodejs.org/en/ 使用require方法加载fs核心模块 var fs = require('fs'); 一.读取文件//   第一个参数就是尧读取的 ...

  10. NodeJS基础教程

    关于 本书致力于教会你如何用Node.js来开发应用,过程中会传授你所有所需的“高级”JavaScript知识.本书绝不是一本“Hello World”的教程. 状态 你正在阅读的已经是本书的最终版. ...

随机推荐

  1. Python之数据库

    Python之数据库: 1. Mysql 2. pymysql 3. SQLAlchemy Mysql 一.概述 什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建了一个 db 目录,称其 ...

  2. Oracle 中 decode 函数用法(字段A,B, C,A不为空则取A,否则取B,B为空则取C)

    –decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值) SELECT DECODE(TEMP.SCORE, ‘A’, ‘90-100’, ‘B’, ‘80-89’, ‘C’, ...

  3. oracle报:ORA-01034和ORA-27101的解决办法

    出现ORA-01034和ORA-27101的原因是多方面的:主要是oracle当前的服务不可用,shared memory realm does not exist,是因为oracle没有启动或没有正 ...

  4. DOM、BOM

    DOM DOM 是 W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: “W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新 ...

  5. ABP领域层创建实体

    原文作者:圣杰 原文地址:ABP入门系列(2)——领域层创建实体 在原文作者上进行改正,适配ABP新版本.内容相同 这一节我们主要和领域层打交道.首先我们要对ABP的体系结构以及从模板创建的解决方案进 ...

  6. Luogu P2495 [SDOI2011]消耗战

    题目 我们可以很快的想到一个单次\(O(n)\)的dp. 然后我们注意到这个dp有很多无用的操作,比如一条没有关键点的链可以直接去掉. 所以我们可以尝试一次dp中只管那些有用的点. 题目给的关键点显然 ...

  7. 剑指offer4:重建二叉树(后序遍历)

    1. 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4 ...

  8. springboot2.0application.在yml文件中添加自定义配置

    1. 在application.yml文件中添加自定义配置 app: platform: version: code: '1.0.0' 2. 定义bean类   具体格式: 其中的成员变量名称需要与配 ...

  9. django 聚合统计查询

    from django.shortcuts import renderfrom django.http import HttpResponsefrom django.db.models import ...

  10. 【动态规划】subsequence 1

    题目链接:https://ac.nowcoder.com/acm/contest/885/G 题意: 两个串,s  t,求s的所有子串中大于 t  的数目 题解: dp[i][j] 表示 s的前i个, ...