技术标签: node.js Node 前端 javascript
解析
并执行
JS 代码,给出运行结果浏览器 | Chrome | Firefox | Safri | JSCore |
---|---|---|---|---|
JS 解析引擎 | IE | V8 | OdinMonkey | Chakra |
框架 | Express | Electron | restify |
---|---|---|---|
功能 | 构建 Web 应用 | 构建跨平台桌面应用 | 构建 API 接口项目 |
win + e
cd 目标目录
node -v
node js文件路径
shift + 文件位置鼠标右键 + powershell
↑ 键
tab 键
esc 键
cls 键
操作文件
的模块const fs = require('fs')
读取
指定文件内容path:文件路径的字符串
options:读取文件的编码格式,默认 utf8
callback: 文件读取完成后,通过回调函数拿到读取结果
写入
内容data:要写入的内容
相对路径
时,执行 node 命令所处目录,出现路径动态拼接错误处理路径
的模块const path = require('path')
../
’,‘./d’,‘e’) // \a\b\d\epath:完整路径字符串
ext:文件扩展名
创建 web 服务器
的模块const http = require('http')
web 服务器软件
,使之异于普通电脑。如 IIS、Apache 等第三方 web 服务器软件通过代码手写服务器软件
,从而对外提供 web 服务每台计算机的唯一地址
,通常以点分十进制
表示成a.b.c.d的形式,均为0-255间十进制整数字符型地址
方案IP 地址和域名之间的转换
服务对应 web 服务
进行处理
80端口可以被省略
请求对象
,包含与客户端相关的数据和属性
响应对象
,包含与服务器相关的数据和属性
// 1、导入 http 模块
const http = require('http')
// 2、创建 web 服务器实例
const server = http.createServer()
// 3、调用 server.on() 方法,为服务器绑定 request 事件
server.on('request', (req, res) => {
const str = `你请求的地址为${
req.url},请求的 method 为${
req.method}`
// 3.1、解决中文乱码
res.setHeader('Content-Type','text/html;charset=utf-8')
// 3.2、向客户端发送指定内容,并结束请求
res.end(str)
})
// 4、调用 server.listen(端口号,回调) 方法,启动 web 服务器
server.listen(80, () => {
console.log('http running at http://127.0.0.1');
})
请求的 url 地址
默认响应内容
为 404 Not found请求的页面类型
Content-Type 响应头
,防止中文乱码res.end()
把内容响应给客户端server.on('request',(req, res) => {
// 1、获取请求的 url 地址
const url = req.url
// 2、设置默认响应内容为 404 Not Found
let content = `<h1>404 Not Found</h1>`
// 3、判断用户请求页面类型
if(url === '/' || url === '/index.html'){
content = `<h1>首页</h1>`
}else if(url === '/about.html'){
content = `<h1>关于页面</h1>`
}
// 4、设置 Content-Type 响应头,防止中文乱码
res.setHeader('Content-Type', 'text/html; charset=utf-8')
// 5、内容响应给客户端
res.end(content)
})
实际存放路径
,作为每个资源的请求 url 地址
// 1、导入模块,处理服务器、文件、路径问题
const http = require('http')
const fs = require('fs')
const path = require('path')
// 2、创建web服务器
const server = http.createServer()
// 3、添加web服务器的request事件
server.on('request', (req, res) => {
const url = req.url
// 3.1、路径直接拼接
// const fpath = path.join(__dirname, url)
// 3.2、优化资源请求路径
let fpath = ''
if(url === '/'){
fpath = path.join(__dirname, '/clock/index.html')
}else{
fpath = path.join(__dirname, '/clock', url)
}
// 4、根据映射来的文件路径读取文件
fs.readFile(fpath, 'utf-8', (err, dataStr) => {
if(err) return res.end('404 Not Found')
// 成功读取的内容响应给客户端
res.end(dataStr)
})
})
// 5、启动服务器
server.listen(80, ()=>{
console.log('server running at http://127.0.0.1');
})
官方提供
的,如 fs、path、http用户创建
的每个 .js 文件第三方开发
模块,下载后使用只能在当前模块被访问
Module {
id: '.',
path: 'C:\\Users\\Administrator\\Desktop\\files',
exports: {
},
filename: 'C:\\Users\\Administrator\\Desktop\\files\\module.js',
loaded: false,
children: [],
paths: [
'C:\\Users\\Administrator\\Desktop\\files\\node_modules',
'C:\\Users\\Administrator\\Desktop\\node_modules',
'C:\\Users\\Administrator\\node_modules',
'C:\\Users\\node_modules',
'C:\\node_modules'
]
}
module.exports 指定对象
默认情况下 module.exports 和 exports 指向同一个对象
,最终共享结果以 module.exports 指向的对象为准第三方模块
又称包npm install 包名 // 完整版
npm i 包名 // 简写版
npm i 包名@版本(点分十进制:大版本.功能大版本.Bug修复版本) // 指定版
npm i 包名 --save-dev // 仅项目开发阶段使用的包复杂版
npm i 包名 -D // 仅项目开发阶段使用的包简写版
项目根目录
中必有 package.json
包管理配置文件,记录与项目有关的配置信息,方便剔除 node_modules 目录后,在团队成员共享项目源代码
npm init -y
快速创建 package.json 包管理配置文件
英文目录
下运行,不支持空格名称
和版本号
记录到 package.jsonnpm install/i
命令,直接读取 package.json 中的 dependencies 节点,一次性下载npm uninstall 包名
,自动将卸载的包从 package.json 中的 dependencies 节点移除仅项目开发阶段使用
的包需要 npm i 包名 -D
将包安装并记录到 devDependencies 节点开发和项目上线都使用
的包 npm i 包名
将包安装并记录到 dependencies 节点// 查看当前下包镜像源
npm config get registry
// 将下包镜像源切换为淘宝镜像源
npm config set registry=https://registry.npm.taobao.org/
// 检查镜像源是否下载成功
npm config get registry
// 安装 nrm 为全局工具
npm i nrm -g
// 查看所有镜像源
nrm ls
// 将下包镜像源切换为 taobao 镜像
nrm use taobao
npm i -g
,工具性质,参考官方说明文档使用仅开发期间使用
开发和上线期间使用
// 安装全局包
npm i -g i5ting_toc
// 调用包
i5ting_toc -f md文件路径 -o
{
"name":"包名",
"version":"1.0.0", //版本号
"main":"index.js", // 入口文件
"description":"包简介",
"keywords":['关键词1', '关键词2', '关键词3',],
"license":"ISC" // 开源许可协议
}
module.exports = {
功能函数名} // 暴露给入口文件
const exp = require('功能文件路径') //接收功能文件
module.export = {
...exp} // 暴露给外部
npm publish
命令npm unpublish 包名 --force
命令
路径标识符
,否则 node 会将其当做内置模块
或第三方模块
加载确切文件名
.js
扩展名.json
扩展名.node
扩展名文章浏览阅读1.4k次,点赞2次,收藏8次。视图就是将某个查询语句存储在数据中,并为其命名,视图中并不存储数据,数据还是在基本表中存储。定义视图使用视图删除视图存储过程就是把一段处理逻辑存入到数据库中,使用是就由 JDBC 调用即可。调用存储过程可以减少应用程序和数据库交互次数,在数据库内部执行,执行效率高。存储事先需要定义,有三种参数类型:in 入参(接收调用者传入的数据)out 返回(向调用者返回数据)inout (既可以接收调用者传入的数据,也可以向调用者返回数据)函数是一个特殊的存储过程。存储过程不仅有输入参数,还有输出参数,但是没有返回值,_mysql高级进阶
文章浏览阅读189次。Selection类型提供的方法,这些方法是页面解析最重要,最核心的方法1)类似函数的位置操作-Eq(indexint)*Selection//根据索引获取某个节点集-First()*Selection//获取第一个子节点集-Last()*Selection//获取最后一个子节点集-Next()*Selection..._goquery获取tbody的数据
文章浏览阅读2.7k次。语音内容:大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答。电脑的资源管理的位置:1、单击开始菜单,在弹出的快捷菜单中选择文件资源管理器。2、按组合键Win+R打开运行窗口。3、在运行窗口中输入命令:explorer按回车键执行命令即可以打开资源管理器窗口。4、在桌面的任务栏上右击鼠标,在弹出的快捷菜单中选择“任务管理器。5、在任务管理器的菜单栏中选择文件中运行新任务。6、在运行..._计算机库到哪里找
文章浏览阅读3.4w次,点赞42次,收藏344次。前言我整理得没有那么全,这里的合集主要还是面对新手。做题贵精不在多,好好练习每一题,学习每个知识点,不懂的百度或者 Google 即可。记住,你是为了提高自己而去打 CTF 。CTF 比赛时间表CTFwiki(入门必看wiki): https://ctf-wiki.github.io/ctf-wiki/#/introduction XCTF社区: https://time.xctf...._ctf靶场
文章浏览阅读6.2w次,点赞168次,收藏598次。相信大家在各种语言各种框架中都能看到二进制的操作。左移、右移、&、|、^等等操作。那么这篇帖子让各位彻底弄懂左移、右移。首先先区分那个是左移、那个是右移,这很简单,从箭头指向的方向来区分。右移左移:很简单的来说就是把当前的二进制,整体往左边移动N个单位,N取决于你的表达式。那么用一个例子,和画图来理解一下吧。32 ..._左移和右移
文章浏览阅读3.2k次,点赞3次,收藏33次。1.软件环境Python3.7pycharm-community-2020.1.1(我的是社区版,专业版安装过程也类似)2.安装PyQt5组件 2.1安装PyQt5打开命令行窗口,输入 pip install PyQt5 -i https://pypi.douban.com/simple 下载安装PyQt5(windows10可以打开 Windows PowerShell ,我就是用它。-i 后面的是豆瓣镜像地址,可以加速Python库下载,常用镜像地址有..._pycharm如何查看python是否安装成功
文章浏览阅读2.9k次。Freescale I.mx 6 Android 4.2.2源码编译环境搭建 1 安装必要的第三方工具:$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \ x11proto-_note, selecting 'lib32z1-dev' instead of 'lib32z-dev
文章浏览阅读1.3w次,点赞7次,收藏75次。本文以文字+思维导图+表格的形式详解了数据库、数据仓库、数据集市、数据湖、数据网格、湖仓一体之间的区别。_数据仓库 数据集市 数据湖
文章浏览阅读443次。每次技术的进步都是面对问题解决问题,有了现实中需要解决的问题了我们才能想各种方法解决他也就成就了技术的跃迁。_python 如何实现并发获取数据
文章浏览阅读4k次,点赞3次,收藏21次。自适应控制 (APC)说道自适应控制(APC),也要追溯到5年前第一次接触,当时还只会应用下面的自适应律公式来求解,这里结合自己的一些想法来对自适应控制进行深入剖析,希望可以帮助到大家。APC的历史:在早期的二十世纪五十年代,APC被开始研究,当时应用在飞机的自动导航装置上。简而言之,APC是一种带有在线参数识别的控制方法,主要可以被分为模型参考自适应控制(MRAC)、自校正控制器(STC)、参数..._自适应控制 柴天佑pdf
文章浏览阅读6.7k次,点赞3次,收藏18次。Overlay FS在Docker中的使用_filesystem overlay
文章浏览阅读802次。高效沟通在职场上,我们能遇到向上沟通,平行沟通,向下沟通,这其中的沟通就显得尤为重要,这是我学习过程中一个同事写的,我拿来做笔记记录下来,保持一个高效的沟通,才能在职场上走得更远。1、何为沟通?沟通就是无论用任何的方式交换(有传递、有反馈)信息的过程。著名的双50%理论在工作中有50%以上的时间都用在了沟通上。如开会、谈判、指示、评估。可是,工作中的50%以上的障碍都是在沟通中产生的。沟通的本质是价值的交换2、沟通的类别传递方式语言沟通语言沟通是指用语言符号进行的信息交流,包括_双五十理论