一、模块概述
为了让Node.js的文件可以相互调用,Node.js提供了一个简单的模块系统。
模块是Node.js 应用程序的基本组成部分,文件和模块是一一对应的。
一个 Node.js 文件就是一个模块。
二、模块使用
1、第三方模块
先安装模块,例如axios:npm i axios;
然后使用require加载模块,var http=require("axios")。
2、自定义模块
导出/创建模块util.js:module.exports={'属性名':'属性值','属性名':'属性值'}
导入/加载util.js模块:var util=require('./util') ;或者利用解构导入
注:加载自定义模块需要使用相对路径
3、内置模块
1)fs:对本地文件进行读写
JavaScript 默认情况下是同步的,并且是单线程的。这意味着代码无法创建新的线程并 且不能并行运行。
同步与异步:
同步:阻塞程序执行,直到处理完毕才能继续执行
异步:在没有处理完成之前先执行后续代码段,通过回到函数接受处理结果
同步异步读取:
var fs=require('fs');
// 1、同步读取
console.log(1);
var res=fs.readFileSync("./1.txt","utf-8");
console.log(res);
console.log(2); // 1 HelloWorld! 2
// 2、异步读取
console.log(6);
fs.readFile("./1.txt","utf8",function(err,res){
// 如果没有错误结果
if(!err){
console.log(res);
}
})
console.log(8); //6 8 HelloWorld!
同步异步写入:
var fs=require('fs');
// 同步写入
fs.writeFileSync('./2.txt','你好');
console.log("写入完毕");
// 异步写入
fs.writeFile('./2.txt','你好',function(err){
if(!err){
console.log("写入成功");
}
})
2)http:服务器搭建
NodeJS 可以使用http模块来创建http服务器。
http已经被集成在node的基础库中。
// 引入http模块
let http=require('http');
// 引入url:获取路由参数 npm i url
let url=require('url');
// 创建服务
// req:request请求 res:response响应
let server=http.createServer(function(req,res){
// 从请求中拿到路由参数
let params=url.parse(req.url);
// 设置正确的状态码
res.statusCode=200;
// 设置请求头
res.setHeader('Content-type','application/json;charset=utf-8');
// 给前端的响应结果
res.end(`{"errCode":0,"msg":"${params.search}"}`);
})
// 开启服务
server.listen(8888,function(){
console.log("服务启动成功!");
})
/*
访问:
本机访问 localhost:8888
127.0.0.1:8888
外机访问
先查看本机的ip: 打开cmd输入ipconfig
然后 本机ip:8888
*/
// 停止服务:ctrl+c
开启服务:
外机访问:
先查看本机ip:
再打开浏览器访问:
ctrl+c关闭服务: