node.js 学习---第一章

news/2024/7/24 13:20:57 标签: node, inquirer, minimist, chalk, progress

Node.js 简介

下一章

node___4">node 与 浏览器的区别

  • 没有浏览器提供的 document、window、以及所有其他的对象
  • 在浏览器中,不存在 Node.js 通过其模块提供的所有不错的 API,例如文件系统访问功能
  • Node.js 使用 CommonJS 模块系统,而在浏览器中,则还正在实现 ES 模块标准。在实践中,这意味着在 Node.js 中使用 require(),而在浏览器中则使用 import
  • 由于 JavaScript 发展的速度非常快,但是浏览器发展得慢一些。在 web 上,不得不使用较旧的 JavaScript / ECMAScript 版本。可以使用 Babel 将代码转换为与 ES5 兼容的代码,再交付给浏览器,但是在 Node.js 中,则不需要这样做

安装

Node.js 可以通过多种方式进行安装

mac

安装brew戳这里~

brew install node

window

下载node包地址

运行脚本

//app.js   运行的文件名,确定要有该文件哦!!!
node app.js

app.js

const express = require('express')
const app = express()

app.get('/', (req, res) => {
  res.send('你好')
})

app.listen(3000, () => console.log('服务器已就绪'))

REPL

使用 tab 键自动补全

REPL 酷的是它是交互式的。

在编写代码时,如果按下 tab 键,则 REPL 会尝试自动补全所写的内容,以匹配已定义或预定义的变量。

在这里插入图片描述
在这里插入图片描述

console 输出

元素计算 console.count

console.count(
  'x 的值为 ' + x + ' 且已经检查了几次?'
)
console.count(
  'x 的值为 ' + x + ' 且已经检查了几次?'
)
console.count(
  'y 的值为 ' + y + ' 且已经检查了几次?'
)


const oranges = ['橙子', '橙子']
const apples = ['苹果']
oranges.forEach(fruit => {
  console.count(fruit)
})
apples.forEach(fruit => {
  console.count(fruit)
})

计算耗时

const doSomething = () => {
  console.log('开始测试')
  for(var i=0;i<10;i++){
    console.log(i)
  }
}
const measureDoingSomething = () => {
  console.time('doSomething()')
  //做点事,并测量所需的时间。
  doSomething()
  console.timeEnd('doSomething()')
}
measureDoingSomething()

着色

引入chalk

cnpm i chalk --save-dev
console.log('\x1b[33m%s\x1b[0m', '使用转义序列输出黄色')

const chalk = require('chalk')

console.log(chalk.red('通过chalk输出红色'))

console.log(chalk.bgGreen('chalk.bgGreen带背景'))

进度条

引入progress

cnpm i progress --save-dev
const ProgressBar = require('progress')

const bar = new ProgressBar('downloading[:bar ] :rate/bps :percent :etas', { 
  total: 10 ,
  incomplete:'.',
  complete:'=',
  callback (){
    console.log('进度 加载完成---')
  }
})
const timer = setInterval(() => {
  bar.tick()
  if (bar.complete) {
    clearInterval(timer)
  }
}, 100)

Tokens

  • :bar 进度条本身
  • :current 当前刻度号
  • :total 总滴答声
  • :elapsed 时间(秒)
  • :percent 完成率
  • :eta 估计完成时间(以秒为单位)
  • :rate 每秒滴答率

Options

  • curr 当前完成的索引
  • total 完成的总滴答数
  • width 进度条的显示宽度默认为总计
  • stream 默认为stderr的输出流
  • head 头字符默认为完整字符
  • complete 补全字符,默认为“ =“
  • incomplete 不完整的字符,默认为“-”
  • renderThrottle 更新之间的最短时间(以毫秒为单位)默认为16
  • clear 选项,清除完成时的条,默认为false
  • callback 进度条完成时调用的可选函数

从命令行接收输入

readline每次一行地从可读流获取输入

const readline = require('readline').createInterface({
  input: process.stdin,
  output: process.stdout
})

readline.question(`你叫什么名字?`, name => {
  console.log(`你好 ${name}!`)
  readline.close()
})

Inquirer.js 软件包则提供了更完整、更抽象的解决方案

const inquirer = require('inquirer')

var questions = [
  {
    type: 'input',
    name: 'name',
    message: "你叫什么名字?"
  },
  {
    type: 'input',
    name: 'age',
    message: "你多大了?"
  },
  {
    type: 'input',
    name: 'address',
    message: "你住在哪里?"
  }
]

inquirer.prompt(questions).then(answers => {
  console.log(answers,'aaaa')
  console.log(`你好 ${answers['name']}!`)
  console.log(`你 ${answers['age']} 岁!`)
  console.log(`你住在 ${answers['address']}!`)
})

在这里插入图片描述

exports公开文件功能功能

Node.js 具有内置的模块系统。

Node.js 文件可以导入其他 Node.js 文件公开的功能。

目录

├── a.js
├── b.js
└── c.js

module.exports

公开了它指向的对象

//b.js

const car = {
  brand: 'Ford',
  model: 'Fiesta'
}

module.exports = car

export公开了它指向的对象的属性

const car = {
  brand: 'Ford',
  model: 'Fiesta'
}

exports.car = car

a.js 引入b、c 文件


const b = require('./b')
const c = require('./c')

/**
 * 或
 * const car = require('./c').car
 */

console.log(b,'公开b文件的对象')
console.log(c,'公开c文件的对象')

效果
在这里插入图片描述


http://www.niftyadmin.cn/n/1558167.html

相关文章

利用html5 file api读取本地文件(如图片、PDF等)

在html4的年代&#xff0c;我们如果要在网页上呈现一张用户本地的图片&#xff0c;需要用户先把图片上传到服务器&#xff0c;再根据服务器提供的图片地址把图片下载下来&#xff0c;才能把图片在网页上呈现出来。这一来二往&#xff0c;起码已经费了两倍于这张图片的流量了&am…

node.js 学习---第二章

上一章 下一章 npm 包管理器简介 npm 是 Node.js 标准的软件包管理器。 它起初是作为下载和管理 Node.js 包依赖的方式&#xff0c;但其现在也已成为前端 JavaScript 中使用的工具。 yarn Yarn是facebook发布的一款取代npm的包管理工具 1&#xff09;速度超快----Yarn缓存…

「镁客·请讲」博雅工道熊明磊:专注消费者体验,做没有“尾巴”的水下机器人...

在熊明磊看来&#xff0c;使用门槛和价格的降低是立足消费级市场的成功所在。 从去年开始&#xff0c;在天空已经被大疆等厂商占据的情况下&#xff0c;水下成为了一个新的“战场”。更为准确的说&#xff0c;“水下机器人”市场一直都存在&#xff0c;只是去年逐步走进了大众…

node.js 学习---第三章

上一章咱们提到package.json&#xff0c;现在便详细学习一下。 如果使用 JavaScript、或者曾经与 JavaScript 项目、Node.js 或前端项目进行过交互&#xff0c;则肯定会遇到过 package.json 文件。 package.json 指南 name注释version表明了当前的版本。name设置了应用程序/…

【转】oracle 和 ' 特殊字符处理 ( like 'GAC/_%' escape ''; 这里面的 / 居然将 转义了 为什么?)...

原文地址&#xff1a;http://blog.csdn.net/gjswxhb/article/details/6083242 今天在导入一批数据到Oracle时&#xff0c;碰到了一个问题&#xff1a;Toad提示&#xff08;plsql 也一样&#xff09;要给一个自定义变量AMP赋值&#xff0c;一开始我很纳闷&#xff0c;数据是一系…

部署vue项目到阿里云服务器(Ubuntu16.04 64位)

上传文件 1.通过Xftp将vue项目文件上传至云服务器&#xff1b;由于node_modules这个依赖包体积较大&#xff0c;上传较慢&#xff0c;上传时跳过&#xff0c;在云服务器上重新进行npm install安装依赖包即可&#xff1b; 2.也可通过git clone从github上克隆项目&#xff08;首先…

node.js 学习---第四章

这里写目录标题node 事件循环process.nextTicksetImmediatePromise 简介链式 promise为什么引入 async/awaiteventsnode 事件循环 事件循环这里就不详细描述了&#xff0c;如果不太了解可以看看前端–事件循环机制 下面是node官网提供的一个示例。 const bar () > conso…

安卓动态调试七种武器之长生剑 - Smali Instrumentation

蒸米 2015/05/15 10:010x00 序随着移动安全越来越火&#xff0c;各种调试工具也都层出不穷&#xff0c;但因为环境和需求的不同&#xff0c;并没有工具是万能的。另外工具是死的&#xff0c;人是活的&#xff0c;如果能搞懂工具的原理再结合上自身的经验&#xff0c;你也可以创…