node.js基本操作

node.js:

  基于Chrome V8引擎的JavaScript运行环境,让其运行在服务端的开发平台。自身提供了基本模块,也可通npm自行下载模块

  特点:快、耗内存多。没有浏览器安全级别限制进行解析js代码、提供很多系统级别的api

  框架的选择:

    比较热门的包括:

    Express(Sails),koa,Hapi

    Express:完善、稳定、文档全、社区大 

    koa :超前(koa2)

    Hapi:复杂(一个简单的helloworld都要做很多堆砌),适合复杂的大型项目

    egg(阿里巴巴团队刚推出的)

  Node.js的安装版本:

    Node.js版本: LTS(长时间支持版本——-推荐) 

     Current(最新版本,有些api会有变动)

node环境下执行js文件:终端进入文件所在目录,在终端中输入 node 文件名

node.js模块开发规范

  自定义模块

  var obj = {这里可以写函数,写对象}

  module.exports = obj

  加载自定义模块

  var obj = require(‘自定义的文件的名称‘)

  例:文件名称为01.js

let a  = {
    username:‘aaa‘,

    log:function(){

        console.log(‘hello world‘)

    }

}

// 暴露 模块  a 对象

module.exports = a;

 

 

 

在文件名称02.js中引用

// 获取到了  01.js 暴露的模块

let box = require(‘./01‘)

// 目录 模块

let bxios = require(‘./bxios‘)

console.log(box.username)

box.log()

bxios()

console.log(222)

console.log(333)

在整个目录暴露时,只读取文件名为index.js这一个文件

安装好之后进入方法  window+r 或者在想打开的文件的地址栏输入cmd。或者在vscode的文件里选择在终端中打开。或者在开始菜单搜索cmd(该方式可以用管理员方式运行)

  这样就可以使用npm的命令

  1.npm -v :查看npm安装的版本

  2.npm init:会引导你创建一个package.json文件,包括名称、版本、作者等信息。

       使用npm init-y 可以跳过很多回车步骤

  3.npm list:查看当前目录下已安装的node包 (简写:npm ls)

  4.npm install moduleNames:安装nde模块到本地目录node_modules下

  5.npm install <name> -g  将包安装到全局环境(install可以简写为i)

  6.npm install<name>--save 将包安装的同时,将信息写入package.json中;

  7.npm uninstall moudleName:卸载node模块

nrm 源管理器

    在node界面中输入

npm config set registry https://registry.npm.taobao.org

    即可将npm源修改成淘宝的源(服务器)

 安装nrm,可将其安装到全局

    指令npm i nrm -g

     执行命令nrm ls 查看可选的源。当前源上有*符号

     执行命令nrm use (taobao)源名,可切换所使用的源

    nodemon:自动重启应用,并执行修改后的代码。

    安装:npm i nodemon -g

    使用:nodemon 文件名(不加文件名默认打开index.js)

  Nodejs内置模块http  解析http协议,可以用来搭建服务器


  // 加载了内置模块 http   解析http协议


  let http = require(‘http‘);


  // console.log(http)


//
一旦有客户端请求服务器 ,监听的回调函数就会执行 let server = http.createServer((req,res)=>{ console.log(‘服务器:收到了客户端的请求‘) req // 是http请求 console.log(req.url) // 参数 if(req.url === ‘/favicon.ico‘){ res.end() return; } console.log(‘aaaa‘) res//服务器给客户端的响应 数据库 读取本地文件 res.write(‘aaa‘); res.end(‘bbbb‘) }) // 80 // 监听主机上的 端口 server.listen(3000,‘192.168.13.56‘,function(){ console.log(‘已经开始监听了,服务器启动成功了‘) })

  首先是解析http  然后通过http.createServer((req,res)=>这里是服务器收到的客户端的请求)

  其次 server.listen(端口号,地址,回调函数)用来监听服务器是否启动成功

nodejs的api

  url

  url.parse(‘接口地址‘),查询url的信息将字符串转为对象

  url.format(),将url对象转为url字符串

例

let url = require(‘url‘);

//     /ap/login.html?usename=aa&password

let urlStr = ‘https://sub.host.com:8080/login?username=1212&password=222‘

let obj = url.parse(urlStr)//url字符串 转为 对象

console.log(obj.pathname)//接口

console.log(obj.query)// username=1212&password=222

console.log(obj.search)// ?username=1212&password=222

// url对象转为  url字符串

let str = url.format(obj)

console.log(str)

 

Query String:用于实现url参数字符串与参数对象的相互转换。

例:

let qs = require(‘querystring‘)

// URL字符串转为js中对象

let obj = qs.parse(‘username=zhangsan&password=123‘)

//{ username: ‘zhangsan‘, password: ‘123‘ }

console.log(obj)

let obj2 = { username: ‘zhangsan‘, password: ‘123‘ }

//username=zhangsan&password=123

let str  = qs.stringify(obj2)

console.log(str)

 

Path

path模块提供了用于处理文件路径的工具

  path.normalize()//正常化路径

  path.join()//链接路径

  path.resolve()//转化为绝对路径

  path.extname()//获取当前路径下文件名的后缀

例:let path = require(‘path‘)

// 正常化路径

console.log(path.normalize(‘/ap/aa/..‘))

 

// 链接路径  \ap\admin\index.html

console.log(path.join(‘/ap‘,‘admin‘,‘index.html‘))

//转化为绝对路径  D:\教学\zz2003\DAY16\代码\06.path.js

console.log(path.resolve(‘06.path.js‘))

// 获取url中的后缀   .html

console.log(path.extname(‘http://aaaadfadf/login.html‘))

console.log(path.extname(‘/zxx.jpg‘))

 

File System--node操作文件

require(‘fs‘)来表示

  1)stat() 获取文件的一些信息 

  2)mkdir() 新增目录的 

  3)writeFile(url,con,fc) 书写文件

  4)appendFile(url,con,fc) 追加文件内容 

  5)读取文件的内容:readFile(url,fc) 

  6)列出目录的东西:readdir 

  7)重命名目录或文件:rename 

  8)删除目录与文件:rmdir(目录),unlink(文件) readdirSync(src) 同步读取目录信息

例:// fs

// 处理电脑的文件的

// fs 里的方法基本都是异步,也有同步

let fs = require(‘fs‘);

// 错误优先

fs.stat(‘06-path.js‘,function(err,data){

    // 回调函数的第一个参数 一般都是err  错误,操作成功err是null,操作失败err就有错误信息了

     if(!err){

        console.log(‘读取成功‘)

        // console.log(data)

     } else{

         console.log(‘读取失败‘,err)

     }  

    

})

console.log(2222)

// async 异步

// sync 同步

let res = fs.statSync(‘06-path.js‘);

// console.log(res)

 

// 创建目录

fs.mkdir(‘./js‘,function(err,data){

    if(err){

        console.log(err)

        return

    }

    console.log(‘创建成功‘)

})

// 创建文件,并写入内容

// fs.writeFile(‘./js/index.js‘,‘console.log("hello nodejs")‘,function(err){

//     if(err){

//         console.log(‘创建失败‘)

//     }else{

//         console.log(‘创建成功‘)

//     }

// })

// 文件追加内容

// fs.appendFile(‘./js/index.js‘,‘\n var a= 1;‘,function(){

//     console.log(‘appendFile‘)

 

// })

// 读取文件内容

// fs.readFile(‘./js/index.js‘,function(err,data){

//     console.log(data.toString())

// })

// 读取文件夹  [ ‘a.js‘, ‘index.js‘ ]

// fs.readdir(‘./js‘,function(err,data){

//     console.log(data)

// })

// 重命名

// fs.rename(‘./js/a.js‘,‘./js/b.js‘,function(err,data){

//     console.log(err)

// })

// 删除文件

// fs.unlink(‘./js/b.js‘,function(err){

//     console.log(err)

// })

// fs.unlinkSync

// 删除目录

// fs.rmdir(‘./js‘,function(err){

//     console.log(err)

// })

// fs.rmdirSync

 

node.js基本操作

上一篇:Mysql-8.0.20-winx64Zip文件安简介教程


下一篇:十位大牛做出的web前端开发规范总结