初识nodejs

149 阅读3分钟

1 简单介绍

node是框架的基础,把后台的数据显示到界面上

node.js 可以理解为是js运行在服务端的一种操作

1.1 简单的运用

在终端获取js数据时,在运行node命令时,可以省略js文件的.js的后缀名,因为node.js命令默认的是以.js结尾。

1.2 导出文件

function add(a,b){
  return a+b;
}
function reduce(a,b){
  return a-b;
}
// module.exports.add=add; //导出一种方法

// 将多种的方法一块导出
module.exports={
  add,
  reduce
}

1.3 模块的导入

var first = require("./04index1.js");
var second = require("./05index2.js");

/*
./表示同级路径,不能去掉
require后面的模块 默认会从node_module文件夹当中找
找到的时候 不需要添加路径,
如果require后面引入的模块不是从node_modules文件夹当中引入的
而是我们自定义的模块,那么必须添加路径
*/

first.add(10,11);
console.log(second.add(10,22))
// 即使模块里面的方法同名也没有关系,因为我们在调用的时候,
给他重新命名了

1.4 封装成模块化的好处

  • 1、变量作用域只在声明它的文件内有效,出了这个文件就不再有效
  • 2、各个js文件记载顺序没有要求
  • 3、模块多次引入只会加载一次(前提是模块内部代码没有改变)

2 fs 模块概述

在 NodeJS 中,所有与文件操作都是通过 fs 核心模块来实现的,包括文件目录的创建、删除、查询以及文件的读取和写入,在 fs 模块中,所有的方法都分为同步和异步两种实现,具有 sync 后缀的方法为同步方法,不具有 sync 后缀的方法为异步方法。

2.1 fs模块的使用

在node.js中所有的模块使用都要先下载下来
通过 npm install (加模块)的语句。
fs模块是node.js的内置模块 所以不需要下载,可直接调用

2.2 同步异步写入

可以写任意类型的文件 如:MP4,jpg,zip,png,doc,mp3...等等

2.2.1 同步写入

// 同步写入
fs.writeFileSync("西游记.txt","吴承恩");
// 在执行node语句 node fs之后
// 我们可以看到会创建一个文件西游记.txt,里面的内容为:吴承恩;

2.2.2 异步写入

// 参数1:路径
// 参数2:写入的数据
// 参数3:回调函数
fs.writeFile("红楼.txt","林妹妹",function(err){
// 查看文件是否创建成功
if(err){
  // 错误的情况下执行
  console.log(err)
}
else{
  // 成功的情况下执行
  console.log("success")
}
})

//如果我们再次向红楼.txt文件下入数据的话,
那么后面的数据会覆盖了前面的数据

2.3 mkdirSync命令

  • mkdirSync命令是创建文件夹的
// 创建一个public文件夹
// 我么可以先判断是否已经创建过public文件夹
fs.exists("public",function(isexist){
  if(!isexist){//如果不存在
    // make directory 制作文件夹
    fs.mkdirSync("public")
    // 执行node命令之后,我们会发现会创建一个public的文件夹
  }
})

2.4 readFile命令

  • readFile命令是读取文件的命令
fs.readFile("西游记.txt",function(err,data){
  if(err){
    console.log(err);
  }
  else{
    console.log(data.toString());
  }
})

2.5 appendFile命令

  • appendFile,命令是向文件里面追加加内容
fs.appendFile("西游记.txt","\n"+"jiayou",function(err){
  if(err){
    console.log(err);
  }
  else{
    console.log("success");
  }
})

3.1 http模块的使用

  • http node自带模块 网络请求的基础模块 最简单,最原始
var http = require("http");
// 参数1:前端发起的请求对象 request
// 参数2:后端响应的对象 response
var app = http.createServer(function(req,res){
  res.writeHead(200,"ok",{
    "Content-Type":"text/html"
  })//是解决中文乱码问题
  res.write("<meta charset='UTF-8'><h1>我是zhao</h1>")
  res.end();
})
app.listen("8080",function(){
  console.log("8080服务器启动...")
})
//首先用node命令执行,启动服务器。然后在浏览器在访问端口号8080,进行数据的请求